@scratch/scratch-render 12.1.0-login-from-editor → 12.1.0-membership-program

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.
@@ -25090,7 +25090,7 @@ var __WEBPACK_AMD_DEFINE_RESULT__;;(function (globalScope) {
25090
25090
  /***/ ((module) => {
25091
25091
 
25092
25092
  "use strict";
25093
- /*! @license DOMPurify 3.2.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.7/LICENSE */
25093
+ /*! @license DOMPurify 3.3.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.0/LICENSE */
25094
25094
 
25095
25095
 
25096
25096
 
@@ -25278,7 +25278,7 @@ function lookupGetter(object, prop) {
25278
25278
  }
25279
25279
 
25280
25280
  const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
25281
- const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'slot', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
25281
+ const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
25282
25282
  const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);
25283
25283
  // List of SVG elements that are disallowed by default.
25284
25284
  // We still need to know them so that we can do namespace
@@ -25292,7 +25292,7 @@ const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongd
25292
25292
  const text = freeze(['#text']);
25293
25293
 
25294
25294
  const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
25295
- const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
25295
+ const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
25296
25296
  const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
25297
25297
  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
25298
25298
 
@@ -25399,7 +25399,7 @@ const _createHooksMap = function _createHooksMap() {
25399
25399
  function createDOMPurify() {
25400
25400
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
25401
25401
  const DOMPurify = root => createDOMPurify(root);
25402
- DOMPurify.version = '3.2.7';
25402
+ DOMPurify.version = '3.3.0';
25403
25403
  DOMPurify.removed = [];
25404
25404
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
25405
25405
  // Not running in a browser, provide a factory function
@@ -25510,6 +25510,21 @@ function createDOMPurify() {
25510
25510
  let FORBID_TAGS = null;
25511
25511
  /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
25512
25512
  let FORBID_ATTR = null;
25513
+ /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */
25514
+ const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
25515
+ tagCheck: {
25516
+ writable: true,
25517
+ configurable: false,
25518
+ enumerable: true,
25519
+ value: null
25520
+ },
25521
+ attributeCheck: {
25522
+ writable: true,
25523
+ configurable: false,
25524
+ enumerable: true,
25525
+ value: null
25526
+ }
25527
+ }));
25513
25528
  /* Decide if ARIA attributes are okay */
25514
25529
  let ALLOW_ARIA_ATTR = true;
25515
25530
  /* Decide if custom data attributes are okay */
@@ -25702,16 +25717,24 @@ function createDOMPurify() {
25702
25717
  }
25703
25718
  /* Merge configuration parameters */
25704
25719
  if (cfg.ADD_TAGS) {
25705
- if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
25706
- ALLOWED_TAGS = clone(ALLOWED_TAGS);
25720
+ if (typeof cfg.ADD_TAGS === 'function') {
25721
+ EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
25722
+ } else {
25723
+ if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
25724
+ ALLOWED_TAGS = clone(ALLOWED_TAGS);
25725
+ }
25726
+ addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
25707
25727
  }
25708
- addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
25709
25728
  }
25710
25729
  if (cfg.ADD_ATTR) {
25711
- if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
25712
- ALLOWED_ATTR = clone(ALLOWED_ATTR);
25730
+ if (typeof cfg.ADD_ATTR === 'function') {
25731
+ EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
25732
+ } else {
25733
+ if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
25734
+ ALLOWED_ATTR = clone(ALLOWED_ATTR);
25735
+ }
25736
+ addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
25713
25737
  }
25714
- addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
25715
25738
  }
25716
25739
  if (cfg.ADD_URI_SAFE_ATTR) {
25717
25740
  addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
@@ -26019,7 +26042,7 @@ function createDOMPurify() {
26019
26042
  return true;
26020
26043
  }
26021
26044
  /* Remove element if anything forbids its presence */
26022
- if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
26045
+ if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
26023
26046
  /* Check if we have a custom element to handle */
26024
26047
  if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
26025
26048
  if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
@@ -26091,7 +26114,7 @@ function createDOMPurify() {
26091
26114
  (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
26092
26115
  XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
26093
26116
  We don't need to check the value; it's always URI safe. */
26094
- if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
26117
+ if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
26095
26118
  if (
26096
26119
  // First condition does a very basic check if a) it's basically a valid custom element tagname AND
26097
26120
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
@@ -142357,471 +142380,6 @@ module.exports = class VirtualConsole extends EventEmitter {
142357
142380
  "use strict";
142358
142381
  module.exports = /*#__PURE__*/JSON.parse('{"name":"jsdom","version":"26.1.0","description":"A JavaScript implementation of many web standards","keywords":["dom","html","whatwg","w3c"],"maintainers":["Elijah Insua <tmpvar@gmail.com> (http://tmpvar.com)","Domenic Denicola <d@domenic.me> (https://domenic.me/)","Sebastian Mayr <sebmaster16@gmail.com> (https://blog.smayr.name/)","Joris van der Wel <joris@jorisvanderwel.com>","Timothy Gu <timothygu99@gmail.com> (https://timothygu.me/)","Magne Andersson <code@zirro.se> (https://zirro.se/)","Pierre-Marie Dartus <dartus.pierremarie@gmail.com>"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/jsdom/jsdom.git"},"dependencies":{"cssstyle":"^4.2.1","data-urls":"^5.0.0","decimal.js":"^10.5.0","html-encoding-sniffer":"^4.0.0","http-proxy-agent":"^7.0.2","https-proxy-agent":"^7.0.6","is-potential-custom-element-name":"^1.0.1","nwsapi":"^2.2.16","parse5":"^7.2.1","rrweb-cssom":"^0.8.0","saxes":"^6.0.0","symbol-tree":"^3.2.4","tough-cookie":"^5.1.1","w3c-xmlserializer":"^5.0.0","webidl-conversions":"^7.0.0","whatwg-encoding":"^3.1.1","whatwg-mimetype":"^4.0.0","whatwg-url":"^14.1.1","ws":"^8.18.0","xml-name-validator":"^5.0.0"},"peerDependencies":{"canvas":"^3.0.0"},"peerDependenciesMeta":{"canvas":{"optional":true}},"devDependencies":{"@domenic/eslint-config":"^4.0.1","benchmark":"^2.1.4","eslint":"^9.20.0","eslint-plugin-html":"^8.1.2","globals":"^15.14.0","js-yaml":"^4.1.0","minimatch":"^9.0.5","mocha":"^11.1.0","mocha-sugar-free":"^1.4.0","pngjs":"^7.0.0","server-destroy":"^1.0.1","webidl2js":"^18.0.0","yargs":"^17.7.2"},"scripts":{"prepare":"npm run convert-idl && npm run generate-js-globals","pretest":"npm run prepare && npm run init-wpt","test-wpt":"mocha test/web-platform-tests/run-wpts.js","test-tuwpt":"mocha test/web-platform-tests/run-tuwpts.js","test-mocha":"mocha","test-api":"mocha test/api","test":"mocha test/index.js","lint":"eslint --cache","init-wpt":"git submodule update --init --recursive","reset-wpt":"rm -rf ./test/web-platform-tests/tests && npm run init-wpt","update-wpt":"git submodule update --init --recursive --remote && cd test/web-platform-tests/tests && python wpt.py manifest --path ../wpt-manifest.json","update-authors":"git log --format=\\"%aN <%aE>\\" | sort -f | uniq > AUTHORS.txt","benchmark":"node ./benchmark/runner","convert-idl":"node ./scripts/webidl/convert.js","generate-js-globals":"node ./scripts/generate-js-globals.js"},"main":"./lib/api.js","type":"commonjs","engines":{"node":">=18"}}');
142359
142382
 
142360
- /***/ }),
142361
-
142362
- /***/ "../../node_modules/isomorphic-dompurify/node_modules/punycode/punycode.es6.js":
142363
- /*!*************************************************************************************!*\
142364
- !*** ../../node_modules/isomorphic-dompurify/node_modules/punycode/punycode.es6.js ***!
142365
- \*************************************************************************************/
142366
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
142367
-
142368
- "use strict";
142369
- __webpack_require__.r(__webpack_exports__);
142370
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
142371
- /* harmony export */ decode: () => (/* binding */ decode),
142372
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
142373
- /* harmony export */ encode: () => (/* binding */ encode),
142374
- /* harmony export */ toASCII: () => (/* binding */ toASCII),
142375
- /* harmony export */ toUnicode: () => (/* binding */ toUnicode),
142376
- /* harmony export */ ucs2decode: () => (/* binding */ ucs2decode),
142377
- /* harmony export */ ucs2encode: () => (/* binding */ ucs2encode)
142378
- /* harmony export */ });
142379
-
142380
-
142381
- /** Highest positive signed 32-bit float value */
142382
- const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
142383
-
142384
- /** Bootstring parameters */
142385
- const base = 36;
142386
- const tMin = 1;
142387
- const tMax = 26;
142388
- const skew = 38;
142389
- const damp = 700;
142390
- const initialBias = 72;
142391
- const initialN = 128; // 0x80
142392
- const delimiter = '-'; // '\x2D'
142393
-
142394
- /** Regular expressions */
142395
- const regexPunycode = /^xn--/;
142396
- const regexNonASCII = /[^\0-\x7F]/; // Note: U+007F DEL is excluded too.
142397
- const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
142398
-
142399
- /** Error messages */
142400
- const errors = {
142401
- 'overflow': 'Overflow: input needs wider integers to process',
142402
- 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
142403
- 'invalid-input': 'Invalid input'
142404
- };
142405
-
142406
- /** Convenience shortcuts */
142407
- const baseMinusTMin = base - tMin;
142408
- const floor = Math.floor;
142409
- const stringFromCharCode = String.fromCharCode;
142410
-
142411
- /*--------------------------------------------------------------------------*/
142412
-
142413
- /**
142414
- * A generic error utility function.
142415
- * @private
142416
- * @param {String} type The error type.
142417
- * @returns {Error} Throws a `RangeError` with the applicable error message.
142418
- */
142419
- function error(type) {
142420
- throw new RangeError(errors[type]);
142421
- }
142422
-
142423
- /**
142424
- * A generic `Array#map` utility function.
142425
- * @private
142426
- * @param {Array} array The array to iterate over.
142427
- * @param {Function} callback The function that gets called for every array
142428
- * item.
142429
- * @returns {Array} A new array of values returned by the callback function.
142430
- */
142431
- function map(array, callback) {
142432
- const result = [];
142433
- let length = array.length;
142434
- while (length--) {
142435
- result[length] = callback(array[length]);
142436
- }
142437
- return result;
142438
- }
142439
-
142440
- /**
142441
- * A simple `Array#map`-like wrapper to work with domain name strings or email
142442
- * addresses.
142443
- * @private
142444
- * @param {String} domain The domain name or email address.
142445
- * @param {Function} callback The function that gets called for every
142446
- * character.
142447
- * @returns {String} A new string of characters returned by the callback
142448
- * function.
142449
- */
142450
- function mapDomain(domain, callback) {
142451
- const parts = domain.split('@');
142452
- let result = '';
142453
- if (parts.length > 1) {
142454
- // In email addresses, only the domain name should be punycoded. Leave
142455
- // the local part (i.e. everything up to `@`) intact.
142456
- result = parts[0] + '@';
142457
- domain = parts[1];
142458
- }
142459
- // Avoid `split(regex)` for IE8 compatibility. See #17.
142460
- domain = domain.replace(regexSeparators, '\x2E');
142461
- const labels = domain.split('.');
142462
- const encoded = map(labels, callback).join('.');
142463
- return result + encoded;
142464
- }
142465
-
142466
- /**
142467
- * Creates an array containing the numeric code points of each Unicode
142468
- * character in the string. While JavaScript uses UCS-2 internally,
142469
- * this function will convert a pair of surrogate halves (each of which
142470
- * UCS-2 exposes as separate characters) into a single code point,
142471
- * matching UTF-16.
142472
- * @see `punycode.ucs2.encode`
142473
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
142474
- * @memberOf punycode.ucs2
142475
- * @name decode
142476
- * @param {String} string The Unicode input string (UCS-2).
142477
- * @returns {Array} The new array of code points.
142478
- */
142479
- function ucs2decode(string) {
142480
- const output = [];
142481
- let counter = 0;
142482
- const length = string.length;
142483
- while (counter < length) {
142484
- const value = string.charCodeAt(counter++);
142485
- if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
142486
- // It's a high surrogate, and there is a next character.
142487
- const extra = string.charCodeAt(counter++);
142488
- if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.
142489
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
142490
- } else {
142491
- // It's an unmatched surrogate; only append this code unit, in case the
142492
- // next code unit is the high surrogate of a surrogate pair.
142493
- output.push(value);
142494
- counter--;
142495
- }
142496
- } else {
142497
- output.push(value);
142498
- }
142499
- }
142500
- return output;
142501
- }
142502
-
142503
- /**
142504
- * Creates a string based on an array of numeric code points.
142505
- * @see `punycode.ucs2.decode`
142506
- * @memberOf punycode.ucs2
142507
- * @name encode
142508
- * @param {Array} codePoints The array of numeric code points.
142509
- * @returns {String} The new Unicode string (UCS-2).
142510
- */
142511
- const ucs2encode = codePoints => String.fromCodePoint(...codePoints);
142512
-
142513
- /**
142514
- * Converts a basic code point into a digit/integer.
142515
- * @see `digitToBasic()`
142516
- * @private
142517
- * @param {Number} codePoint The basic numeric code point value.
142518
- * @returns {Number} The numeric value of a basic code point (for use in
142519
- * representing integers) in the range `0` to `base - 1`, or `base` if
142520
- * the code point does not represent a value.
142521
- */
142522
- const basicToDigit = function(codePoint) {
142523
- if (codePoint >= 0x30 && codePoint < 0x3A) {
142524
- return 26 + (codePoint - 0x30);
142525
- }
142526
- if (codePoint >= 0x41 && codePoint < 0x5B) {
142527
- return codePoint - 0x41;
142528
- }
142529
- if (codePoint >= 0x61 && codePoint < 0x7B) {
142530
- return codePoint - 0x61;
142531
- }
142532
- return base;
142533
- };
142534
-
142535
- /**
142536
- * Converts a digit/integer into a basic code point.
142537
- * @see `basicToDigit()`
142538
- * @private
142539
- * @param {Number} digit The numeric value of a basic code point.
142540
- * @returns {Number} The basic code point whose value (when used for
142541
- * representing integers) is `digit`, which needs to be in the range
142542
- * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
142543
- * used; else, the lowercase form is used. The behavior is undefined
142544
- * if `flag` is non-zero and `digit` has no uppercase form.
142545
- */
142546
- const digitToBasic = function(digit, flag) {
142547
- // 0..25 map to ASCII a..z or A..Z
142548
- // 26..35 map to ASCII 0..9
142549
- return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
142550
- };
142551
-
142552
- /**
142553
- * Bias adaptation function as per section 3.4 of RFC 3492.
142554
- * https://tools.ietf.org/html/rfc3492#section-3.4
142555
- * @private
142556
- */
142557
- const adapt = function(delta, numPoints, firstTime) {
142558
- let k = 0;
142559
- delta = firstTime ? floor(delta / damp) : delta >> 1;
142560
- delta += floor(delta / numPoints);
142561
- for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
142562
- delta = floor(delta / baseMinusTMin);
142563
- }
142564
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
142565
- };
142566
-
142567
- /**
142568
- * Converts a Punycode string of ASCII-only symbols to a string of Unicode
142569
- * symbols.
142570
- * @memberOf punycode
142571
- * @param {String} input The Punycode string of ASCII-only symbols.
142572
- * @returns {String} The resulting string of Unicode symbols.
142573
- */
142574
- const decode = function(input) {
142575
- // Don't use UCS-2.
142576
- const output = [];
142577
- const inputLength = input.length;
142578
- let i = 0;
142579
- let n = initialN;
142580
- let bias = initialBias;
142581
-
142582
- // Handle the basic code points: let `basic` be the number of input code
142583
- // points before the last delimiter, or `0` if there is none, then copy
142584
- // the first basic code points to the output.
142585
-
142586
- let basic = input.lastIndexOf(delimiter);
142587
- if (basic < 0) {
142588
- basic = 0;
142589
- }
142590
-
142591
- for (let j = 0; j < basic; ++j) {
142592
- // if it's not a basic code point
142593
- if (input.charCodeAt(j) >= 0x80) {
142594
- error('not-basic');
142595
- }
142596
- output.push(input.charCodeAt(j));
142597
- }
142598
-
142599
- // Main decoding loop: start just after the last delimiter if any basic code
142600
- // points were copied; start at the beginning otherwise.
142601
-
142602
- for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
142603
-
142604
- // `index` is the index of the next character to be consumed.
142605
- // Decode a generalized variable-length integer into `delta`,
142606
- // which gets added to `i`. The overflow checking is easier
142607
- // if we increase `i` as we go, then subtract off its starting
142608
- // value at the end to obtain `delta`.
142609
- const oldi = i;
142610
- for (let w = 1, k = base; /* no condition */; k += base) {
142611
-
142612
- if (index >= inputLength) {
142613
- error('invalid-input');
142614
- }
142615
-
142616
- const digit = basicToDigit(input.charCodeAt(index++));
142617
-
142618
- if (digit >= base) {
142619
- error('invalid-input');
142620
- }
142621
- if (digit > floor((maxInt - i) / w)) {
142622
- error('overflow');
142623
- }
142624
-
142625
- i += digit * w;
142626
- const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
142627
-
142628
- if (digit < t) {
142629
- break;
142630
- }
142631
-
142632
- const baseMinusT = base - t;
142633
- if (w > floor(maxInt / baseMinusT)) {
142634
- error('overflow');
142635
- }
142636
-
142637
- w *= baseMinusT;
142638
-
142639
- }
142640
-
142641
- const out = output.length + 1;
142642
- bias = adapt(i - oldi, out, oldi == 0);
142643
-
142644
- // `i` was supposed to wrap around from `out` to `0`,
142645
- // incrementing `n` each time, so we'll fix that now:
142646
- if (floor(i / out) > maxInt - n) {
142647
- error('overflow');
142648
- }
142649
-
142650
- n += floor(i / out);
142651
- i %= out;
142652
-
142653
- // Insert `n` at position `i` of the output.
142654
- output.splice(i++, 0, n);
142655
-
142656
- }
142657
-
142658
- return String.fromCodePoint(...output);
142659
- };
142660
-
142661
- /**
142662
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
142663
- * Punycode string of ASCII-only symbols.
142664
- * @memberOf punycode
142665
- * @param {String} input The string of Unicode symbols.
142666
- * @returns {String} The resulting Punycode string of ASCII-only symbols.
142667
- */
142668
- const encode = function(input) {
142669
- const output = [];
142670
-
142671
- // Convert the input in UCS-2 to an array of Unicode code points.
142672
- input = ucs2decode(input);
142673
-
142674
- // Cache the length.
142675
- const inputLength = input.length;
142676
-
142677
- // Initialize the state.
142678
- let n = initialN;
142679
- let delta = 0;
142680
- let bias = initialBias;
142681
-
142682
- // Handle the basic code points.
142683
- for (const currentValue of input) {
142684
- if (currentValue < 0x80) {
142685
- output.push(stringFromCharCode(currentValue));
142686
- }
142687
- }
142688
-
142689
- const basicLength = output.length;
142690
- let handledCPCount = basicLength;
142691
-
142692
- // `handledCPCount` is the number of code points that have been handled;
142693
- // `basicLength` is the number of basic code points.
142694
-
142695
- // Finish the basic string with a delimiter unless it's empty.
142696
- if (basicLength) {
142697
- output.push(delimiter);
142698
- }
142699
-
142700
- // Main encoding loop:
142701
- while (handledCPCount < inputLength) {
142702
-
142703
- // All non-basic code points < n have been handled already. Find the next
142704
- // larger one:
142705
- let m = maxInt;
142706
- for (const currentValue of input) {
142707
- if (currentValue >= n && currentValue < m) {
142708
- m = currentValue;
142709
- }
142710
- }
142711
-
142712
- // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
142713
- // but guard against overflow.
142714
- const handledCPCountPlusOne = handledCPCount + 1;
142715
- if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
142716
- error('overflow');
142717
- }
142718
-
142719
- delta += (m - n) * handledCPCountPlusOne;
142720
- n = m;
142721
-
142722
- for (const currentValue of input) {
142723
- if (currentValue < n && ++delta > maxInt) {
142724
- error('overflow');
142725
- }
142726
- if (currentValue === n) {
142727
- // Represent delta as a generalized variable-length integer.
142728
- let q = delta;
142729
- for (let k = base; /* no condition */; k += base) {
142730
- const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
142731
- if (q < t) {
142732
- break;
142733
- }
142734
- const qMinusT = q - t;
142735
- const baseMinusT = base - t;
142736
- output.push(
142737
- stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
142738
- );
142739
- q = floor(qMinusT / baseMinusT);
142740
- }
142741
-
142742
- output.push(stringFromCharCode(digitToBasic(q, 0)));
142743
- bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);
142744
- delta = 0;
142745
- ++handledCPCount;
142746
- }
142747
- }
142748
-
142749
- ++delta;
142750
- ++n;
142751
-
142752
- }
142753
- return output.join('');
142754
- };
142755
-
142756
- /**
142757
- * Converts a Punycode string representing a domain name or an email address
142758
- * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
142759
- * it doesn't matter if you call it on a string that has already been
142760
- * converted to Unicode.
142761
- * @memberOf punycode
142762
- * @param {String} input The Punycoded domain name or email address to
142763
- * convert to Unicode.
142764
- * @returns {String} The Unicode representation of the given Punycode
142765
- * string.
142766
- */
142767
- const toUnicode = function(input) {
142768
- return mapDomain(input, function(string) {
142769
- return regexPunycode.test(string)
142770
- ? decode(string.slice(4).toLowerCase())
142771
- : string;
142772
- });
142773
- };
142774
-
142775
- /**
142776
- * Converts a Unicode string representing a domain name or an email address to
142777
- * Punycode. Only the non-ASCII parts of the domain name will be converted,
142778
- * i.e. it doesn't matter if you call it with a domain that's already in
142779
- * ASCII.
142780
- * @memberOf punycode
142781
- * @param {String} input The domain name or email address to convert, as a
142782
- * Unicode string.
142783
- * @returns {String} The Punycode representation of the given domain name or
142784
- * email address.
142785
- */
142786
- const toASCII = function(input) {
142787
- return mapDomain(input, function(string) {
142788
- return regexNonASCII.test(string)
142789
- ? 'xn--' + encode(string)
142790
- : string;
142791
- });
142792
- };
142793
-
142794
- /*--------------------------------------------------------------------------*/
142795
-
142796
- /** Define the public API */
142797
- const punycode = {
142798
- /**
142799
- * A string representing the current Punycode.js version number.
142800
- * @memberOf punycode
142801
- * @type String
142802
- */
142803
- 'version': '2.3.1',
142804
- /**
142805
- * An object of methods to convert from JavaScript's internal character
142806
- * representation (UCS-2) to Unicode code points, and back.
142807
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
142808
- * @memberOf punycode
142809
- * @type Object
142810
- */
142811
- 'ucs2': {
142812
- 'decode': ucs2decode,
142813
- 'encode': ucs2encode
142814
- },
142815
- 'decode': decode,
142816
- 'encode': encode,
142817
- 'toASCII': toASCII,
142818
- 'toUnicode': toUnicode
142819
- };
142820
-
142821
-
142822
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (punycode);
142823
-
142824
-
142825
142383
  /***/ }),
142826
142384
 
142827
142385
  /***/ "../../node_modules/isomorphic-dompurify/node_modules/saxes/saxes.js":
@@ -148321,7 +147879,7 @@ exports.version = '5.1.2';
148321
147879
  "use strict";
148322
147880
 
148323
147881
 
148324
- const punycode = __webpack_require__(/*! punycode/ */ "../../node_modules/isomorphic-dompurify/node_modules/punycode/punycode.es6.js");
147882
+ const punycode = __webpack_require__(/*! punycode/ */ "../../node_modules/punycode/punycode.es6.js");
148325
147883
  const regexes = __webpack_require__(/*! ./lib/regexes.js */ "../../node_modules/isomorphic-dompurify/node_modules/tr46/lib/regexes.js");
148326
147884
  const mappingTable = __webpack_require__(/*! ./lib/mappingTable.json */ "../../node_modules/isomorphic-dompurify/node_modules/tr46/lib/mappingTable.json");
148327
147885
  const { STATUS_MAPPING } = __webpack_require__(/*! ./lib/statusMapping.js */ "../../node_modules/isomorphic-dompurify/node_modules/tr46/lib/statusMapping.js");
@@ -170413,6 +169971,471 @@ exports.xmlDecodeTree = new Uint16Array(
170413
169971
  .map((c) => c.charCodeAt(0)));
170414
169972
  //# sourceMappingURL=decode-data-xml.js.map
170415
169973
 
169974
+ /***/ }),
169975
+
169976
+ /***/ "../../node_modules/punycode/punycode.es6.js":
169977
+ /*!***************************************************!*\
169978
+ !*** ../../node_modules/punycode/punycode.es6.js ***!
169979
+ \***************************************************/
169980
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
169981
+
169982
+ "use strict";
169983
+ __webpack_require__.r(__webpack_exports__);
169984
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
169985
+ /* harmony export */ decode: () => (/* binding */ decode),
169986
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
169987
+ /* harmony export */ encode: () => (/* binding */ encode),
169988
+ /* harmony export */ toASCII: () => (/* binding */ toASCII),
169989
+ /* harmony export */ toUnicode: () => (/* binding */ toUnicode),
169990
+ /* harmony export */ ucs2decode: () => (/* binding */ ucs2decode),
169991
+ /* harmony export */ ucs2encode: () => (/* binding */ ucs2encode)
169992
+ /* harmony export */ });
169993
+
169994
+
169995
+ /** Highest positive signed 32-bit float value */
169996
+ const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
169997
+
169998
+ /** Bootstring parameters */
169999
+ const base = 36;
170000
+ const tMin = 1;
170001
+ const tMax = 26;
170002
+ const skew = 38;
170003
+ const damp = 700;
170004
+ const initialBias = 72;
170005
+ const initialN = 128; // 0x80
170006
+ const delimiter = '-'; // '\x2D'
170007
+
170008
+ /** Regular expressions */
170009
+ const regexPunycode = /^xn--/;
170010
+ const regexNonASCII = /[^\0-\x7F]/; // Note: U+007F DEL is excluded too.
170011
+ const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
170012
+
170013
+ /** Error messages */
170014
+ const errors = {
170015
+ 'overflow': 'Overflow: input needs wider integers to process',
170016
+ 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
170017
+ 'invalid-input': 'Invalid input'
170018
+ };
170019
+
170020
+ /** Convenience shortcuts */
170021
+ const baseMinusTMin = base - tMin;
170022
+ const floor = Math.floor;
170023
+ const stringFromCharCode = String.fromCharCode;
170024
+
170025
+ /*--------------------------------------------------------------------------*/
170026
+
170027
+ /**
170028
+ * A generic error utility function.
170029
+ * @private
170030
+ * @param {String} type The error type.
170031
+ * @returns {Error} Throws a `RangeError` with the applicable error message.
170032
+ */
170033
+ function error(type) {
170034
+ throw new RangeError(errors[type]);
170035
+ }
170036
+
170037
+ /**
170038
+ * A generic `Array#map` utility function.
170039
+ * @private
170040
+ * @param {Array} array The array to iterate over.
170041
+ * @param {Function} callback The function that gets called for every array
170042
+ * item.
170043
+ * @returns {Array} A new array of values returned by the callback function.
170044
+ */
170045
+ function map(array, callback) {
170046
+ const result = [];
170047
+ let length = array.length;
170048
+ while (length--) {
170049
+ result[length] = callback(array[length]);
170050
+ }
170051
+ return result;
170052
+ }
170053
+
170054
+ /**
170055
+ * A simple `Array#map`-like wrapper to work with domain name strings or email
170056
+ * addresses.
170057
+ * @private
170058
+ * @param {String} domain The domain name or email address.
170059
+ * @param {Function} callback The function that gets called for every
170060
+ * character.
170061
+ * @returns {String} A new string of characters returned by the callback
170062
+ * function.
170063
+ */
170064
+ function mapDomain(domain, callback) {
170065
+ const parts = domain.split('@');
170066
+ let result = '';
170067
+ if (parts.length > 1) {
170068
+ // In email addresses, only the domain name should be punycoded. Leave
170069
+ // the local part (i.e. everything up to `@`) intact.
170070
+ result = parts[0] + '@';
170071
+ domain = parts[1];
170072
+ }
170073
+ // Avoid `split(regex)` for IE8 compatibility. See #17.
170074
+ domain = domain.replace(regexSeparators, '\x2E');
170075
+ const labels = domain.split('.');
170076
+ const encoded = map(labels, callback).join('.');
170077
+ return result + encoded;
170078
+ }
170079
+
170080
+ /**
170081
+ * Creates an array containing the numeric code points of each Unicode
170082
+ * character in the string. While JavaScript uses UCS-2 internally,
170083
+ * this function will convert a pair of surrogate halves (each of which
170084
+ * UCS-2 exposes as separate characters) into a single code point,
170085
+ * matching UTF-16.
170086
+ * @see `punycode.ucs2.encode`
170087
+ * @see <https://mathiasbynens.be/notes/javascript-encoding>
170088
+ * @memberOf punycode.ucs2
170089
+ * @name decode
170090
+ * @param {String} string The Unicode input string (UCS-2).
170091
+ * @returns {Array} The new array of code points.
170092
+ */
170093
+ function ucs2decode(string) {
170094
+ const output = [];
170095
+ let counter = 0;
170096
+ const length = string.length;
170097
+ while (counter < length) {
170098
+ const value = string.charCodeAt(counter++);
170099
+ if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
170100
+ // It's a high surrogate, and there is a next character.
170101
+ const extra = string.charCodeAt(counter++);
170102
+ if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.
170103
+ output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
170104
+ } else {
170105
+ // It's an unmatched surrogate; only append this code unit, in case the
170106
+ // next code unit is the high surrogate of a surrogate pair.
170107
+ output.push(value);
170108
+ counter--;
170109
+ }
170110
+ } else {
170111
+ output.push(value);
170112
+ }
170113
+ }
170114
+ return output;
170115
+ }
170116
+
170117
+ /**
170118
+ * Creates a string based on an array of numeric code points.
170119
+ * @see `punycode.ucs2.decode`
170120
+ * @memberOf punycode.ucs2
170121
+ * @name encode
170122
+ * @param {Array} codePoints The array of numeric code points.
170123
+ * @returns {String} The new Unicode string (UCS-2).
170124
+ */
170125
+ const ucs2encode = codePoints => String.fromCodePoint(...codePoints);
170126
+
170127
+ /**
170128
+ * Converts a basic code point into a digit/integer.
170129
+ * @see `digitToBasic()`
170130
+ * @private
170131
+ * @param {Number} codePoint The basic numeric code point value.
170132
+ * @returns {Number} The numeric value of a basic code point (for use in
170133
+ * representing integers) in the range `0` to `base - 1`, or `base` if
170134
+ * the code point does not represent a value.
170135
+ */
170136
+ const basicToDigit = function(codePoint) {
170137
+ if (codePoint >= 0x30 && codePoint < 0x3A) {
170138
+ return 26 + (codePoint - 0x30);
170139
+ }
170140
+ if (codePoint >= 0x41 && codePoint < 0x5B) {
170141
+ return codePoint - 0x41;
170142
+ }
170143
+ if (codePoint >= 0x61 && codePoint < 0x7B) {
170144
+ return codePoint - 0x61;
170145
+ }
170146
+ return base;
170147
+ };
170148
+
170149
+ /**
170150
+ * Converts a digit/integer into a basic code point.
170151
+ * @see `basicToDigit()`
170152
+ * @private
170153
+ * @param {Number} digit The numeric value of a basic code point.
170154
+ * @returns {Number} The basic code point whose value (when used for
170155
+ * representing integers) is `digit`, which needs to be in the range
170156
+ * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
170157
+ * used; else, the lowercase form is used. The behavior is undefined
170158
+ * if `flag` is non-zero and `digit` has no uppercase form.
170159
+ */
170160
+ const digitToBasic = function(digit, flag) {
170161
+ // 0..25 map to ASCII a..z or A..Z
170162
+ // 26..35 map to ASCII 0..9
170163
+ return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
170164
+ };
170165
+
170166
+ /**
170167
+ * Bias adaptation function as per section 3.4 of RFC 3492.
170168
+ * https://tools.ietf.org/html/rfc3492#section-3.4
170169
+ * @private
170170
+ */
170171
+ const adapt = function(delta, numPoints, firstTime) {
170172
+ let k = 0;
170173
+ delta = firstTime ? floor(delta / damp) : delta >> 1;
170174
+ delta += floor(delta / numPoints);
170175
+ for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
170176
+ delta = floor(delta / baseMinusTMin);
170177
+ }
170178
+ return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
170179
+ };
170180
+
170181
+ /**
170182
+ * Converts a Punycode string of ASCII-only symbols to a string of Unicode
170183
+ * symbols.
170184
+ * @memberOf punycode
170185
+ * @param {String} input The Punycode string of ASCII-only symbols.
170186
+ * @returns {String} The resulting string of Unicode symbols.
170187
+ */
170188
+ const decode = function(input) {
170189
+ // Don't use UCS-2.
170190
+ const output = [];
170191
+ const inputLength = input.length;
170192
+ let i = 0;
170193
+ let n = initialN;
170194
+ let bias = initialBias;
170195
+
170196
+ // Handle the basic code points: let `basic` be the number of input code
170197
+ // points before the last delimiter, or `0` if there is none, then copy
170198
+ // the first basic code points to the output.
170199
+
170200
+ let basic = input.lastIndexOf(delimiter);
170201
+ if (basic < 0) {
170202
+ basic = 0;
170203
+ }
170204
+
170205
+ for (let j = 0; j < basic; ++j) {
170206
+ // if it's not a basic code point
170207
+ if (input.charCodeAt(j) >= 0x80) {
170208
+ error('not-basic');
170209
+ }
170210
+ output.push(input.charCodeAt(j));
170211
+ }
170212
+
170213
+ // Main decoding loop: start just after the last delimiter if any basic code
170214
+ // points were copied; start at the beginning otherwise.
170215
+
170216
+ for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
170217
+
170218
+ // `index` is the index of the next character to be consumed.
170219
+ // Decode a generalized variable-length integer into `delta`,
170220
+ // which gets added to `i`. The overflow checking is easier
170221
+ // if we increase `i` as we go, then subtract off its starting
170222
+ // value at the end to obtain `delta`.
170223
+ const oldi = i;
170224
+ for (let w = 1, k = base; /* no condition */; k += base) {
170225
+
170226
+ if (index >= inputLength) {
170227
+ error('invalid-input');
170228
+ }
170229
+
170230
+ const digit = basicToDigit(input.charCodeAt(index++));
170231
+
170232
+ if (digit >= base) {
170233
+ error('invalid-input');
170234
+ }
170235
+ if (digit > floor((maxInt - i) / w)) {
170236
+ error('overflow');
170237
+ }
170238
+
170239
+ i += digit * w;
170240
+ const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
170241
+
170242
+ if (digit < t) {
170243
+ break;
170244
+ }
170245
+
170246
+ const baseMinusT = base - t;
170247
+ if (w > floor(maxInt / baseMinusT)) {
170248
+ error('overflow');
170249
+ }
170250
+
170251
+ w *= baseMinusT;
170252
+
170253
+ }
170254
+
170255
+ const out = output.length + 1;
170256
+ bias = adapt(i - oldi, out, oldi == 0);
170257
+
170258
+ // `i` was supposed to wrap around from `out` to `0`,
170259
+ // incrementing `n` each time, so we'll fix that now:
170260
+ if (floor(i / out) > maxInt - n) {
170261
+ error('overflow');
170262
+ }
170263
+
170264
+ n += floor(i / out);
170265
+ i %= out;
170266
+
170267
+ // Insert `n` at position `i` of the output.
170268
+ output.splice(i++, 0, n);
170269
+
170270
+ }
170271
+
170272
+ return String.fromCodePoint(...output);
170273
+ };
170274
+
170275
+ /**
170276
+ * Converts a string of Unicode symbols (e.g. a domain name label) to a
170277
+ * Punycode string of ASCII-only symbols.
170278
+ * @memberOf punycode
170279
+ * @param {String} input The string of Unicode symbols.
170280
+ * @returns {String} The resulting Punycode string of ASCII-only symbols.
170281
+ */
170282
+ const encode = function(input) {
170283
+ const output = [];
170284
+
170285
+ // Convert the input in UCS-2 to an array of Unicode code points.
170286
+ input = ucs2decode(input);
170287
+
170288
+ // Cache the length.
170289
+ const inputLength = input.length;
170290
+
170291
+ // Initialize the state.
170292
+ let n = initialN;
170293
+ let delta = 0;
170294
+ let bias = initialBias;
170295
+
170296
+ // Handle the basic code points.
170297
+ for (const currentValue of input) {
170298
+ if (currentValue < 0x80) {
170299
+ output.push(stringFromCharCode(currentValue));
170300
+ }
170301
+ }
170302
+
170303
+ const basicLength = output.length;
170304
+ let handledCPCount = basicLength;
170305
+
170306
+ // `handledCPCount` is the number of code points that have been handled;
170307
+ // `basicLength` is the number of basic code points.
170308
+
170309
+ // Finish the basic string with a delimiter unless it's empty.
170310
+ if (basicLength) {
170311
+ output.push(delimiter);
170312
+ }
170313
+
170314
+ // Main encoding loop:
170315
+ while (handledCPCount < inputLength) {
170316
+
170317
+ // All non-basic code points < n have been handled already. Find the next
170318
+ // larger one:
170319
+ let m = maxInt;
170320
+ for (const currentValue of input) {
170321
+ if (currentValue >= n && currentValue < m) {
170322
+ m = currentValue;
170323
+ }
170324
+ }
170325
+
170326
+ // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
170327
+ // but guard against overflow.
170328
+ const handledCPCountPlusOne = handledCPCount + 1;
170329
+ if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
170330
+ error('overflow');
170331
+ }
170332
+
170333
+ delta += (m - n) * handledCPCountPlusOne;
170334
+ n = m;
170335
+
170336
+ for (const currentValue of input) {
170337
+ if (currentValue < n && ++delta > maxInt) {
170338
+ error('overflow');
170339
+ }
170340
+ if (currentValue === n) {
170341
+ // Represent delta as a generalized variable-length integer.
170342
+ let q = delta;
170343
+ for (let k = base; /* no condition */; k += base) {
170344
+ const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
170345
+ if (q < t) {
170346
+ break;
170347
+ }
170348
+ const qMinusT = q - t;
170349
+ const baseMinusT = base - t;
170350
+ output.push(
170351
+ stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
170352
+ );
170353
+ q = floor(qMinusT / baseMinusT);
170354
+ }
170355
+
170356
+ output.push(stringFromCharCode(digitToBasic(q, 0)));
170357
+ bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);
170358
+ delta = 0;
170359
+ ++handledCPCount;
170360
+ }
170361
+ }
170362
+
170363
+ ++delta;
170364
+ ++n;
170365
+
170366
+ }
170367
+ return output.join('');
170368
+ };
170369
+
170370
+ /**
170371
+ * Converts a Punycode string representing a domain name or an email address
170372
+ * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
170373
+ * it doesn't matter if you call it on a string that has already been
170374
+ * converted to Unicode.
170375
+ * @memberOf punycode
170376
+ * @param {String} input The Punycoded domain name or email address to
170377
+ * convert to Unicode.
170378
+ * @returns {String} The Unicode representation of the given Punycode
170379
+ * string.
170380
+ */
170381
+ const toUnicode = function(input) {
170382
+ return mapDomain(input, function(string) {
170383
+ return regexPunycode.test(string)
170384
+ ? decode(string.slice(4).toLowerCase())
170385
+ : string;
170386
+ });
170387
+ };
170388
+
170389
+ /**
170390
+ * Converts a Unicode string representing a domain name or an email address to
170391
+ * Punycode. Only the non-ASCII parts of the domain name will be converted,
170392
+ * i.e. it doesn't matter if you call it with a domain that's already in
170393
+ * ASCII.
170394
+ * @memberOf punycode
170395
+ * @param {String} input The domain name or email address to convert, as a
170396
+ * Unicode string.
170397
+ * @returns {String} The Punycode representation of the given domain name or
170398
+ * email address.
170399
+ */
170400
+ const toASCII = function(input) {
170401
+ return mapDomain(input, function(string) {
170402
+ return regexNonASCII.test(string)
170403
+ ? 'xn--' + encode(string)
170404
+ : string;
170405
+ });
170406
+ };
170407
+
170408
+ /*--------------------------------------------------------------------------*/
170409
+
170410
+ /** Define the public API */
170411
+ const punycode = {
170412
+ /**
170413
+ * A string representing the current Punycode.js version number.
170414
+ * @memberOf punycode
170415
+ * @type String
170416
+ */
170417
+ 'version': '2.3.1',
170418
+ /**
170419
+ * An object of methods to convert from JavaScript's internal character
170420
+ * representation (UCS-2) to Unicode code points, and back.
170421
+ * @see <https://mathiasbynens.be/notes/javascript-encoding>
170422
+ * @memberOf punycode
170423
+ * @type Object
170424
+ */
170425
+ 'ucs2': {
170426
+ 'decode': ucs2decode,
170427
+ 'encode': ucs2encode
170428
+ },
170429
+ 'decode': decode,
170430
+ 'encode': encode,
170431
+ 'toASCII': toASCII,
170432
+ 'toUnicode': toUnicode
170433
+ };
170434
+
170435
+
170436
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (punycode);
170437
+
170438
+
170416
170439
  /***/ }),
170417
170440
 
170418
170441
  /***/ "../../node_modules/rrweb-cssom/lib/CSSConditionRule.js":
@@ -188577,8 +188600,8 @@ var base64js = __webpack_require__(/*! base64-js */ "../../node_modules/base64-j
188577
188600
  */
188578
188601
  var BitmapAdapter = /*#__PURE__*/function () {
188579
188602
  /**
188580
- * @param {?function} makeImage HTML image constructor. Tests can provide this.
188581
- * @param {?function} makeCanvas HTML canvas constructor. Tests can provide this.
188603
+ * @param {?Function} makeImage HTML image constructor. Tests can provide this.
188604
+ * @param {?Function} makeCanvas HTML canvas constructor. Tests can provide this.
188582
188605
  */
188583
188606
  function BitmapAdapter(makeImage, makeCanvas) {
188584
188607
  _classCallCheck(this, BitmapAdapter);
@@ -188625,7 +188648,7 @@ var BitmapAdapter = /*#__PURE__*/function () {
188625
188648
  * to resolution 2 bitmaps. Therefore, converting a resolution 1 bitmap means doubling
188626
188649
  * it in width and height.
188627
188650
  * @param {!string} dataURI Base 64 encoded image data of the bitmap
188628
- * @param {!function} callback Node-style callback that returns updated dataURI if conversion succeeded
188651
+ * @param {!Function} callback Node-style callback that returns updated dataURI if conversion succeeded
188629
188652
  */
188630
188653
  }, {
188631
188654
  key: "convertResolution1Bitmap",
@@ -188646,7 +188669,7 @@ var BitmapAdapter = /*#__PURE__*/function () {
188646
188669
  * to in Scratch 3.0
188647
188670
  * @param {!number} oldWidth original width
188648
188671
  * @param {!number} oldHeight original height
188649
- * @return {object} Array of new width, new height
188672
+ * @returns {object} Array of new width, new height
188650
188673
  */
188651
188674
  }, {
188652
188675
  key: "getResizedWidthHeight",
@@ -188840,7 +188863,7 @@ module.exports = function (svgString) {
188840
188863
  /**
188841
188864
  * Given an SVG, replace Scratch 2.0 fonts with new 3.0 fonts. Add defaults where there are none.
188842
188865
  * @param {SVGElement} svgTag The SVG dom object
188843
- * @return {void}
188866
+ * @returns {void}
188844
188867
  */
188845
188868
  var convertFonts = function convertFonts(svgTag) {
188846
188869
  // Collect all text elements into a list.
@@ -188899,7 +188922,7 @@ var getFonts = __webpack_require__(/*! scratch-render-fonts */ "../../node_modul
188899
188922
  * // Using a <link> or <style>@import</style> to link to font-family
188900
188923
  * // injected into the document: no effect.
188901
188924
  * @param {string} svgString The string representation of the svg to modify
188902
- * @return {string} The svg with any needed fonts inlined
188925
+ * @returns {string} The svg with any needed fonts inlined
188903
188926
  */
188904
188927
  var inlineSvgFonts = function inlineSvgFonts(svgString) {
188905
188928
  var FONTS = getFonts();
@@ -188992,7 +189015,7 @@ var _require = __webpack_require__(/*! ./sanitize-svg */ "../scratch-svg-rendere
188992
189015
  /**
188993
189016
  * @param {SVGElement} svgTag the tag to search within
188994
189017
  * @param {string} [tagName] svg tag to search for (or collect all elements if not given)
188995
- * @return {Array} a list of elements with the given tagname
189018
+ * @returns {Array} a list of elements with the given tagname
188996
189019
  */
188997
189020
  var collectElements = function collectElements(svgTag, tagName) {
188998
189021
  var elts = [];
@@ -189173,7 +189196,7 @@ var transformText = function transformText(svgTag) {
189173
189196
  * This is used to enlarge the computed bounding box, which doesn't take
189174
189197
  * stroke width into account.
189175
189198
  * @param {SVGSVGElement} rootNode The root SVG node to traverse.
189176
- * @return {number} The largest stroke width in the SVG.
189199
+ * @returns {number} The largest stroke width in the SVG.
189177
189200
  */
189178
189201
  var findLargestStrokeWidth = function findLargestStrokeWidth(rootNode) {
189179
189202
  var largestStrokeWidth = 0;
@@ -189315,7 +189338,7 @@ var normalizeSvg = function normalizeSvg(svgTag, fromVersion2) {
189315
189338
  * mimic Scratch 2.0's SVG rendering.
189316
189339
  * @param {!string} svgString String of SVG data to draw in quirks-mode.
189317
189340
  * @param {boolean} [fromVersion2] True if we should perform conversion from version 2 to version 3 svg.
189318
- * @return {SVGSVGElement} The normalized SVG element.
189341
+ * @returns {SVGSVGElement} The normalized SVG element.
189319
189342
  */
189320
189343
  var loadSvgString = function loadSvgString(svgString, fromVersion2) {
189321
189344
  // Parse string into SVG XML.
@@ -189430,7 +189453,7 @@ var _TextDecoder;
189430
189453
  var _TextEncoder;
189431
189454
  if (typeof TextDecoder === 'undefined' || typeof TextEncoder === 'undefined') {
189432
189455
  // Wait to require the text encoding polyfill until we know it's needed.
189433
- // eslint-disable-next-line global-require
189456
+
189434
189457
  var encoding = __webpack_require__(/*! fastestsmallesttextencoderdecoder */ "../../node_modules/fastestsmallesttextencoderdecoder/NodeJS/EncoderAndDecoderNodeJS.min.mjs");
189435
189458
  _TextDecoder = encoding.TextDecoder;
189436
189459
  _TextEncoder = encoding.TextEncoder;
@@ -189442,7 +189465,7 @@ if (typeof TextDecoder === 'undefined' || typeof TextEncoder === 'undefined') {
189442
189465
  /**
189443
189466
  * Load an SVG Uint8Array of bytes and "sanitize" it
189444
189467
  * @param {!Uint8Array} rawData unsanitized SVG daata
189445
- * @return {Uint8Array} sanitized SVG data
189468
+ * @returns {Uint8Array} sanitized SVG data
189446
189469
  */
189447
189470
  sanitizeSvg.sanitizeByteStream = function (rawData) {
189448
189471
  var decoder = new _TextDecoder();
@@ -189456,7 +189479,7 @@ sanitizeSvg.sanitizeByteStream = function (rawData) {
189456
189479
  * fixup-svg-string.js, and thus more risky; there are known examples of SVGs that
189457
189480
  * it will clobber. We use DOMPurify's svg profile, which restricts many types of tag.
189458
189481
  * @param {!string} rawSvgText unsanitized SVG string
189459
- * @return {string} sanitized SVG text
189482
+ * @returns {string} sanitized SVG text
189460
189483
  */
189461
189484
  sanitizeSvg.sanitizeSvgText = function (rawSvgText) {
189462
189485
  var sanitizedText = DOMPurify.sanitize(rawSvgText, {
@@ -189631,7 +189654,7 @@ var SvgRenderer = /*#__PURE__*/function () {
189631
189654
  * Create a quirks-mode SVG renderer for a particular canvas.
189632
189655
  * @param {HTMLCanvasElement} [canvas] An optional canvas element to draw to. If this is not provided, the renderer
189633
189656
  * will create a new canvas.
189634
- * @constructor
189657
+ * @class
189635
189658
  */
189636
189659
  function SvgRenderer(canvas) {
189637
189660
  _classCallCheck(this, SvgRenderer);
@@ -189688,7 +189711,7 @@ var SvgRenderer = /*#__PURE__*/function () {
189688
189711
  }
189689
189712
 
189690
189713
  /**
189691
- * @return {Array<number>} the natural size, in Scratch units, of this SVG.
189714
+ * @returns {Array<number>} the natural size, in Scratch units, of this SVG.
189692
189715
  */
189693
189716
  }, {
189694
189717
  key: "size",
@@ -189697,7 +189720,7 @@ var SvgRenderer = /*#__PURE__*/function () {
189697
189720
  }
189698
189721
 
189699
189722
  /**
189700
- * @return {Array<number>} the offset (upper left corner) of the SVG's view box.
189723
+ * @returns {Array<number>} the offset (upper left corner) of the SVG's view box.
189701
189724
  */
189702
189725
  }, {
189703
189726
  key: "viewOffset",
@@ -189785,7 +189808,7 @@ var SvgRenderer = /*#__PURE__*/function () {
189785
189808
  /**
189786
189809
  * Draw to the canvas from a loaded image element.
189787
189810
  * @param {number} [scale] - Optionally, also scale the image by this factor.
189788
- **/
189811
+ */
189789
189812
  }, {
189790
189813
  key: "_drawFromImage",
189791
189814
  value: function _drawFromImage(scale) {
@@ -190359,14 +190382,13 @@ var _parseUrl = function _parseUrl(value, windowRef) {
190359
190382
  * on groups down to the leaf level and averaging out the stroke width
190360
190383
  * around the shapes. Note that this doens't just change stroke widths, it
190361
190384
  * changes path data and attributes throughout the SVG.
190362
- *
190363
190385
  * @param {SVGElement} svgTag The SVG dom object
190364
190386
  * @param {Window} windowRef The window to use. Need to pass in for
190365
190387
  * tests to work, as they get angry at even the mention of window.
190366
190388
  * @param {object} bboxForTesting The bounds to use. Need to pass in for
190367
190389
  * tests only, because getBBox doesn't work in Node. This should
190368
190390
  * be the bounds of the svgTag without including stroke width or transforms.
190369
- * @return {void}
190391
+ * @returns {void}
190370
190392
  */
190371
190393
  var transformStrokeWidths = function transformStrokeWidths(svgTag, windowRef, bboxForTesting) {
190372
190394
  var inherited = Matrix.identity();
@@ -190535,7 +190557,7 @@ var Skin = __webpack_require__(/*! ./Skin */ "./src/Skin.js");
190535
190557
  var BitmapSkin = /*#__PURE__*/function (_Skin) {
190536
190558
  /**
190537
190559
  * Create a new Bitmap Skin.
190538
- * @extends Skin
190560
+ * @augments Skin
190539
190561
  * @param {!int} id - The ID for this Skin.
190540
190562
  * @param {!RenderWebGL} renderer - The renderer which will use this skin.
190541
190563
  */
@@ -190570,7 +190592,7 @@ var BitmapSkin = /*#__PURE__*/function (_Skin) {
190570
190592
  }
190571
190593
 
190572
190594
  /**
190573
- * @return {Array<number>} the "native" size, in texels, of this skin.
190595
+ * @returns {Array<number>} the "native" size, in texels, of this skin.
190574
190596
  */
190575
190597
  }, {
190576
190598
  key: "size",
@@ -190580,7 +190602,7 @@ var BitmapSkin = /*#__PURE__*/function (_Skin) {
190580
190602
 
190581
190603
  /**
190582
190604
  * @param {Array<number>} scale - The scaling factors to be used.
190583
- * @return {WebGLTexture} The GL texture representation of this skin when drawing at the given scale.
190605
+ * @returns {WebGLTexture} The GL texture representation of this skin when drawing at the given scale.
190584
190606
  */
190585
190607
  // eslint-disable-next-line no-unused-vars
190586
190608
  }, {
@@ -190592,7 +190614,7 @@ var BitmapSkin = /*#__PURE__*/function (_Skin) {
190592
190614
  /**
190593
190615
  * Set the contents of this skin to a snapshot of the provided bitmap data.
190594
190616
  * @param {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement} bitmapData - new contents for this skin.
190595
- * @param {int} [costumeResolution=1] - The resolution to use for this bitmap.
190617
+ * @param {int} [costumeResolution] - The resolution to use for this bitmap.
190596
190618
  * @param {Array<number>} [rotationCenter] - Optional rotation center for the bitmap. If not supplied, it will be
190597
190619
  * calculated from the bounding box
190598
190620
  * @fires Skin.event:WasAltered
@@ -190691,10 +190713,9 @@ var FLOATING_POINT_ERROR_ALLOWANCE = 1e-6;
190691
190713
  * internal __isTouchingPosition as a return value, so this should be copied
190692
190714
  * if you ever need to get two local positions and store both. Requires that
190693
190715
  * the drawable inverseMatrix is up to date.
190694
- *
190695
190716
  * @param {Drawable} drawable The drawable to get the inverse matrix and uniforms from
190696
190717
  * @param {twgl.v3} vec [x,y] scratch space vector
190697
- * @return {twgl.v3} [x,y] texture space float vector - transformed by effects and matrix
190718
+ * @returns {twgl.v3} [x,y] texture space float vector - transformed by effects and matrix
190698
190719
  */
190699
190720
  var getLocalPosition = function getLocalPosition(drawable, vec) {
190700
190721
  // Transfrom from world coordinates to Drawable coordinates.
@@ -190726,7 +190747,7 @@ var Drawable = /*#__PURE__*/function () {
190726
190747
  * An object which can be drawn by the renderer.
190727
190748
  * @todo double-buffer all rendering state (position, skin, effects, etc.)
190728
190749
  * @param {!int} id - This Drawable's unique ID.
190729
- * @constructor
190750
+ * @class
190730
190751
  */
190731
190752
  function Drawable(id) {
190732
190753
  _classCallCheck(this, Drawable);
@@ -190774,9 +190795,10 @@ var Drawable = /*#__PURE__*/function () {
190774
190795
  this._inverseTransformDirty = true;
190775
190796
  this._visible = true;
190776
190797
 
190777
- /** A bitmask identifying which effects are currently in use.
190798
+ /**
190799
+ * A bitmask identifying which effects are currently in use.
190778
190800
  * @readonly
190779
- * @type {int} */
190801
+ @type {int} */
190780
190802
  this.enabledEffects = 0;
190781
190803
 
190782
190804
  /** @todo move convex hull functionality, maybe bounds functionality overall, to Skin classes */
@@ -191130,7 +191152,7 @@ var Drawable = /*#__PURE__*/function () {
191130
191152
 
191131
191153
  /**
191132
191154
  * Whether the Drawable needs convex hull points provided by the renderer.
191133
- * @return {boolean} True when no convex hull known, or it's dirty.
191155
+ * @returns {boolean} True when no convex hull known, or it's dirty.
191134
191156
  */
191135
191157
  }, {
191136
191158
  key: "needsConvexHullPoints",
@@ -191174,7 +191196,7 @@ var Drawable = /*#__PURE__*/function () {
191174
191196
  * The caller is responsible for ensuring this drawable's inverse matrix & its skin's silhouette are up-to-date.
191175
191197
  * @see updateCPURenderAttributes
191176
191198
  * @param {twgl.v3} vec World coordinate vector.
191177
- * @return {boolean} True if the world position touches the skin.
191199
+ * @returns {boolean} True if the world position touches the skin.
191178
191200
  */
191179
191201
 
191180
191202
  // `updateCPURenderAttributes` sets this Drawable instance's `isTouching` method
@@ -191207,7 +191229,7 @@ var Drawable = /*#__PURE__*/function () {
191207
191229
  * and then finds the minimum box along the axes.
191208
191230
  * Before calling this, ensure the renderer has updated convex hull points.
191209
191231
  * @param {?Rectangle} result optional destination for bounds calculation
191210
- * @return {!Rectangle} Bounds for a tight box around the Drawable.
191232
+ * @returns {!Rectangle} Bounds for a tight box around the Drawable.
191211
191233
  */
191212
191234
  }, {
191213
191235
  key: "getBounds",
@@ -191230,7 +191252,7 @@ var Drawable = /*#__PURE__*/function () {
191230
191252
  * Used for calculating where to position a text bubble.
191231
191253
  * Before calling this, ensure the renderer has updated convex hull points.
191232
191254
  * @param {?Rectangle} result optional destination for bounds calculation
191233
- * @return {!Rectangle} Bounds for a tight box around a slice of the Drawable.
191255
+ * @returns {!Rectangle} Bounds for a tight box around a slice of the Drawable.
191234
191256
  */
191235
191257
  }, {
191236
191258
  key: "getBoundsForBubble",
@@ -191263,7 +191285,7 @@ var Drawable = /*#__PURE__*/function () {
191263
191285
  * `getAABB` returns a much less accurate bounding box, but will be much
191264
191286
  * faster to calculate so may be desired for quick checks/optimizations.
191265
191287
  * @param {?Rectangle} result optional destination for bounds calculation
191266
- * @return {!Rectangle} Rough axis-aligned bounding box for Drawable.
191288
+ * @returns {!Rectangle} Rough axis-aligned bounding box for Drawable.
191267
191289
  */
191268
191290
  }, {
191269
191291
  key: "getAABB",
@@ -191282,7 +191304,7 @@ var Drawable = /*#__PURE__*/function () {
191282
191304
  * I.e., returns the tight bounding box when the convex hull points are already
191283
191305
  * known, but otherwise return the rough AABB of the Drawable.
191284
191306
  * @param {?Rectangle} result optional destination for bounds calculation
191285
- * @return {!Rectangle} Bounds for the Drawable.
191307
+ * @returns {!Rectangle} Bounds for the Drawable.
191286
191308
  */
191287
191309
  }, {
191288
191310
  key: "getFastBounds",
@@ -191297,7 +191319,7 @@ var Drawable = /*#__PURE__*/function () {
191297
191319
  * Transform all the convex hull points by the current Drawable's
191298
191320
  * transform. This allows us to skip recalculating the convex hull
191299
191321
  * for many Drawable updates, including translation, rotation, scaling.
191300
- * @return {!Array.<!Array.number>} Array of glPoints which are Array<x, y>
191322
+ * @returns {!Array.<!Array.number>} Array of glPoints which are Array<x, y>
191301
191323
  * @private
191302
191324
  */
191303
191325
  }, {
@@ -191463,7 +191485,7 @@ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r),
191463
191485
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
191464
191486
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
191465
191487
  /**
191466
- * @fileoverview
191488
+ * @file
191467
191489
  * A utility to transform a texture coordinate to another texture coordinate
191468
191490
  * representing how the shaders apply effects.
191469
191491
  */
@@ -191476,13 +191498,13 @@ var ShaderManager = __webpack_require__(/*! ./ShaderManager */ "./src/ShaderMana
191476
191498
 
191477
191499
  /**
191478
191500
  * A texture coordinate is between 0 and 1. 0.5 is the center position.
191479
- * @const {number}
191501
+ * @constant {number}
191480
191502
  */
191481
191503
  var CENTER_X = 0.5;
191482
191504
 
191483
191505
  /**
191484
191506
  * A texture coordinate is between 0 and 1. 0.5 is the center position.
191485
- * @const {number}
191507
+ * @constant {number}
191486
191508
  */
191487
191509
  var CENTER_Y = 0.5;
191488
191510
 
@@ -191585,7 +191607,7 @@ var EffectTransform = /*#__PURE__*/function () {
191585
191607
  * @param {Drawable} drawable The drawable whose effects to emulate.
191586
191608
  * @param {twgl.v3} vec The texture coordinate to transform.
191587
191609
  * @param {twgl.v3} dst A place to store the output coordinate.
191588
- * @return {twgl.v3} dst - The coordinate after being transform by effects.
191610
+ * @returns {twgl.v3} dst - The coordinate after being transform by effects.
191589
191611
  */
191590
191612
  }, {
191591
191613
  key: "transformPoint",
@@ -191705,7 +191727,7 @@ var ShaderManager = __webpack_require__(/*! ./ShaderManager */ "./src/ShaderMana
191705
191727
  * @type {PenSkin#PenAttributes}
191706
191728
  * @memberof PenSkin
191707
191729
  * @private
191708
- * @const
191730
+ * @constant
191709
191731
  */
191710
191732
  var DefaultPenAttributes = {
191711
191733
  color4f: [0, 0, 1, 1],
@@ -191722,7 +191744,7 @@ var PenSkin = /*#__PURE__*/function (_Skin) {
191722
191744
  * Create a Skin which implements a Scratch pen layer.
191723
191745
  * @param {int} id - The unique ID for this Skin.
191724
191746
  * @param {RenderWebGL} renderer - The renderer which will use this Skin.
191725
- * @extends Skin
191747
+ * @augments Skin
191726
191748
  * @listens RenderWebGL#event:NativeSizeChanged
191727
191749
  */
191728
191750
  function PenSkin(id, renderer) {
@@ -191801,7 +191823,7 @@ var PenSkin = /*#__PURE__*/function (_Skin) {
191801
191823
  }
191802
191824
 
191803
191825
  /**
191804
- * @return {Array<number>} the "native" size, in texels, of this skin. [width, height]
191826
+ * @returns {Array<number>} the "native" size, in texels, of this skin. [width, height]
191805
191827
  */
191806
191828
  }, {
191807
191829
  key: "size",
@@ -191818,7 +191840,7 @@ var PenSkin = /*#__PURE__*/function (_Skin) {
191818
191840
 
191819
191841
  /**
191820
191842
  * @param {Array<number>} scale The X and Y scaling factors to be used, as percentages of this skin's "native" size.
191821
- * @return {WebGLTexture} The GL texture representation of this skin when drawing at the given size.
191843
+ * @returns {WebGLTexture} The GL texture representation of this skin when drawing at the given size.
191822
191844
  */
191823
191845
  // eslint-disable-next-line no-unused-vars
191824
191846
  }, {
@@ -192051,7 +192073,7 @@ var Rectangle = /*#__PURE__*/function () {
192051
192073
  * A utility for creating and comparing axis-aligned rectangles.
192052
192074
  * Rectangles are always initialized to the "largest possible rectangle";
192053
192075
  * use one of the init* methods below to set up a particular rectangle.
192054
- * @constructor
192076
+ * @class
192055
192077
  */
192056
192078
  function Rectangle() {
192057
192079
  _classCallCheck(this, Rectangle);
@@ -192138,7 +192160,7 @@ var Rectangle = /*#__PURE__*/function () {
192138
192160
  * Note that this is a comparison assuming the Rectangle was
192139
192161
  * initialized with Scratch-space bounds or points.
192140
192162
  * @param {!Rectangle} other Rectangle to check if intersecting.
192141
- * @return {boolean} True if this Rectangle intersects other.
192163
+ * @returns {boolean} True if this Rectangle intersects other.
192142
192164
  */
192143
192165
  }, {
192144
192166
  key: "intersects",
@@ -192151,7 +192173,7 @@ var Rectangle = /*#__PURE__*/function () {
192151
192173
  * Note that this is a comparison assuming the Rectangle was
192152
192174
  * initialized with Scratch-space bounds or points.
192153
192175
  * @param {!Rectangle} other Rectangle to check if fully contained.
192154
- * @return {boolean} True if this Rectangle fully contains other.
192176
+ * @returns {boolean} True if this Rectangle fully contains other.
192155
192177
  */
192156
192178
  }, {
192157
192179
  key: "contains",
@@ -192205,7 +192227,7 @@ var Rectangle = /*#__PURE__*/function () {
192205
192227
  get:
192206
192228
  /**
192207
192229
  * Width of the Rectangle.
192208
- * @return {number} Width of rectangle.
192230
+ * @returns {number} Width of rectangle.
192209
192231
  */
192210
192232
  function get() {
192211
192233
  return Math.abs(this.left - this.right);
@@ -192213,7 +192235,7 @@ var Rectangle = /*#__PURE__*/function () {
192213
192235
 
192214
192236
  /**
192215
192237
  * Height of the Rectangle.
192216
- * @return {number} Height of rectangle.
192238
+ * @returns {number} Height of rectangle.
192217
192239
  */
192218
192240
  }, {
192219
192241
  key: "height",
@@ -192271,13 +192293,13 @@ module.exports = Rectangle;
192271
192293
  module.exports = {
192272
192294
  /**
192273
192295
  * The ID value to use for "no item" or when an object has been disposed.
192274
- * @const {int}
192296
+ * @constant {int}
192275
192297
  */
192276
192298
  ID_NONE: -1,
192277
192299
  /**
192278
192300
  * Optimize for fewer than this number of Drawables sharing the same Skin.
192279
192301
  * Going above this may cause middleware warnings or a performance penalty but should otherwise behave correctly.
192280
- * @const {int}
192302
+ * @constant {int}
192281
192303
  */
192282
192304
  SKIN_SHARE_SOFT_LIMIT: 301,
192283
192305
  /**
@@ -192286,7 +192308,6 @@ module.exports = {
192286
192308
  Events: {
192287
192309
  /**
192288
192310
  * NativeSizeChanged event
192289
- *
192290
192311
  * @event RenderWebGL#event:NativeSizeChanged
192291
192312
  * @type {object}
192292
192313
  * @property {Array<int>} newSize - the new size of the renderer
@@ -192353,7 +192374,7 @@ var __cpuTouchingColorPixelCount = 4e4;
192353
192374
  /**
192354
192375
  * @callback RenderWebGL#idFilterFunc
192355
192376
  * @param {int} drawableID The ID to filter.
192356
- * @return {bool} True if the ID passes the filter, otherwise false.
192377
+ * @returns {bool} True if the ID passes the filter, otherwise false.
192357
192378
  */
192358
192379
 
192359
192380
  /**
@@ -192419,11 +192440,11 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
192419
192440
  * @see RenderWebGL#setStageSize
192420
192441
  * @see RenderWebGL#resize
192421
192442
  * @param {canvas} canvas The canvas to draw onto.
192422
- * @param {int} [xLeft=-240] The x-coordinate of the left edge.
192423
- * @param {int} [xRight=240] The x-coordinate of the right edge.
192424
- * @param {int} [yBottom=-180] The y-coordinate of the bottom edge.
192425
- * @param {int} [yTop=180] The y-coordinate of the top edge.
192426
- * @constructor
192443
+ * @param {int} [xLeft] The x-coordinate of the left edge.
192444
+ * @param {int} [xRight] The x-coordinate of the right edge.
192445
+ * @param {int} [yBottom] The y-coordinate of the bottom edge.
192446
+ * @param {int} [yTop] The y-coordinate of the top edge.
192447
+ * @class
192427
192448
  * @listens RenderWebGL#event:NativeSizeChanged
192428
192449
  */
192429
192450
  function RenderWebGL(canvas, xLeft, xRight, yBottom, yTop) {
@@ -192451,7 +192472,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
192451
192472
 
192452
192473
  // A list of layer group names in the order they should appear
192453
192474
  // from furthest back to furthest in front.
192454
- /** @type {Array<String>} */
192475
+ /** @type {Array<string>} */
192455
192476
  _this._groupOrdering = [];
192456
192477
 
192457
192478
  /**
@@ -192621,7 +192642,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
192621
192642
  }
192622
192643
 
192623
192644
  /**
192624
- * @return {Array<int>} the "native" size of the stage, which is used for pen, query renders, etc.
192645
+ * @returns {Array<int>} the "native" size of the stage, which is used for pen, query renders, etc.
192625
192646
  */
192626
192647
  }, {
192627
192648
  key: "getNativeSize",
@@ -192648,7 +192669,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
192648
192669
  /**
192649
192670
  * Create a new bitmap skin from a snapshot of the provided bitmap data.
192650
192671
  * @param {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement} bitmapData - new contents for this skin.
192651
- * @param {!int} [costumeResolution=1] - The resolution to use for this bitmap.
192672
+ * @param {!int} [costumeResolution] - The resolution to use for this bitmap.
192652
192673
  * @param {?Array<number>} [rotationCenter] Optional: rotation center of the skin. If not supplied, the center of
192653
192674
  * the skin will be used.
192654
192675
  * @returns {!int} the ID for the new skin.
@@ -192919,7 +192940,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
192919
192940
  * Returns the position of the given drawableID in the draw list. This is
192920
192941
  * the absolute position irrespective of layer group.
192921
192942
  * @param {number} drawableID The drawable ID to find.
192922
- * @return {number} The postion of the given drawable ID.
192943
+ * @returns {number} The postion of the given drawable ID.
192923
192944
  */
192924
192945
  }, {
192925
192946
  key: "getDrawableOrder",
@@ -192941,7 +192962,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
192941
192962
  * of the layer group.
192942
192963
  * @param {boolean=} optIsRelative If set, `order` refers to a relative change.
192943
192964
  * @param {number=} optMin If set, order constrained to be at least `optMin`.
192944
- * @return {?number} New order if changed, or null.
192965
+ * @returns {?number} New order if changed, or null.
192945
192966
  */
192946
192967
  }, {
192947
192968
  key: "setDrawableOrder",
@@ -193011,7 +193032,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193011
193032
  /**
193012
193033
  * Get the precise bounds for a Drawable.
193013
193034
  * @param {int} drawableID ID of Drawable to get bounds for.
193014
- * @return {object} Bounds for a tight box around the Drawable.
193035
+ * @returns {object} Bounds for a tight box around the Drawable.
193015
193036
  */
193016
193037
  }, {
193017
193038
  key: "getBounds",
@@ -193041,7 +193062,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193041
193062
  * Get the precise bounds for a Drawable around the top slice.
193042
193063
  * Used for positioning speech bubbles more closely to the sprite.
193043
193064
  * @param {int} drawableID ID of Drawable to get bubble bounds for.
193044
- * @return {object} Bounds for a tight box around the Drawable top slice.
193065
+ * @returns {object} Bounds for a tight box around the Drawable top slice.
193045
193066
  */
193046
193067
  }, {
193047
193068
  key: "getBoundsForBubble",
@@ -193070,7 +193091,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193070
193091
  /**
193071
193092
  * Get the current skin (costume) size of a Drawable.
193072
193093
  * @param {int} drawableID The ID of the Drawable to measure.
193073
- * @return {Array<number>} Skin size, width and height.
193094
+ * @returns {Array<number>} Skin size, width and height.
193074
193095
  */
193075
193096
  }, {
193076
193097
  key: "getCurrentSkinSize",
@@ -193082,7 +193103,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193082
193103
  /**
193083
193104
  * Get the size of a skin by ID.
193084
193105
  * @param {int} skinID The ID of the Skin to measure.
193085
- * @return {Array<number>} Skin size, width and height.
193106
+ * @returns {Array<number>} Skin size, width and height.
193086
193107
  */
193087
193108
  }, {
193088
193109
  key: "getSkinSize",
@@ -193094,7 +193115,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193094
193115
  /**
193095
193116
  * Get the rotation center of a skin by ID.
193096
193117
  * @param {int} skinID The ID of the Skin
193097
- * @return {Array<number>} The rotationCenterX and rotationCenterY
193118
+ * @returns {Array<number>} The rotationCenterX and rotationCenterY
193098
193119
  */
193099
193120
  }, {
193100
193121
  key: "getSkinRotationCenter",
@@ -193338,7 +193359,6 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193338
193359
  * Convert a client based x/y position on the canvas to a Scratch 3 world space
193339
193360
  * Rectangle. This creates recangles with a radius to cover selecting multiple
193340
193361
  * scratch pixels with touch / small render areas.
193341
- *
193342
193362
  * @param {int} centerX The client x coordinate of the picking location.
193343
193363
  * @param {int} centerY The client y coordinate of the picking location.
193344
193364
  * @param {int} [width] The client width of the touch event (optional).
@@ -193372,7 +193392,6 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193372
193392
  /**
193373
193393
  * Determine if the drawable is touching a client based x/y. Helper method for sensing
193374
193394
  * touching mouse-pointer. Ignores visibility.
193375
- *
193376
193395
  * @param {int} drawableID The ID of the drawable to check.
193377
193396
  * @param {int} centerX The client x coordinate of the picking location.
193378
193397
  * @param {int} centerY The client y coordinate of the picking location.
@@ -193402,7 +193421,6 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193402
193421
 
193403
193422
  /**
193404
193423
  * Determine if the drawable is touching a rectangle.
193405
- *
193406
193424
  * @param {int} drawableID The ID of the drawable to check.
193407
193425
  * @param {int} left - The left X coordinate of the rectangle.
193408
193426
  * @param {int} top - The top Y coordinate of the rectangle.
@@ -193433,7 +193451,6 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193433
193451
 
193434
193452
  /**
193435
193453
  * Determine if the drawable is touching a point in the Scratch coordinate system
193436
- *
193437
193454
  * @param {int} drawableID The ID of the drawable to check.
193438
193455
  * @param {int} x The x coordinate of the point.
193439
193456
  * @param {int} y The y coordinate of the point.
@@ -193455,7 +193472,6 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193455
193472
  * This function will pick all drawables that are visible, unless specific
193456
193473
  * candidate drawable IDs are provided. Used for determining what is clicked
193457
193474
  * or dragged. Will not select hidden / ghosted sprites.
193458
- *
193459
193475
  * @param {int} centerX The client x coordinate of the picking location.
193460
193476
  * @param {int} centerY The client y coordinate of the picking location.
193461
193477
  * @param {int} [touchWidth] The client width of the touch event (optional).
@@ -193530,7 +193546,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193530
193546
  /**
193531
193547
  * Return a drawable's pixel data and bounds in screen space.
193532
193548
  * @param {int} drawableID The ID of the drawable to get pixel data for
193533
- * @return {DrawableExtraction} Data about the picked drawable
193549
+ * @returns {DrawableExtraction} Data about the picked drawable
193534
193550
  */
193535
193551
  }, {
193536
193552
  key: "extractDrawableScreenSpace",
@@ -193622,7 +193638,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193622
193638
  * @param {int} x The client x coordinate of the picking location.
193623
193639
  * @param {int} y The client y coordinate of the picking location.
193624
193640
  * @param {int} radius The client radius to extract pixels with.
193625
- * @return {?ColorExtraction} Data about the picked color
193641
+ * @returns {?ColorExtraction} Data about the picked color
193626
193642
  */
193627
193643
  }, {
193628
193644
  key: "extractColor",
@@ -193674,7 +193690,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193674
193690
  /**
193675
193691
  * Get the candidate bounding box for a touching query.
193676
193692
  * @param {int} drawableID ID for drawable of query.
193677
- * @return {?Rectangle} Rectangle bounds for touching query, or null.
193693
+ * @returns {?Rectangle} Rectangle bounds for touching query, or null.
193678
193694
  */
193679
193695
  }, {
193680
193696
  key: "_touchingBounds",
@@ -193703,7 +193719,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193703
193719
  * could possibly intersect the given bounds.
193704
193720
  * @param {int} drawableID - ID for drawable of query.
193705
193721
  * @param {Array<int>} candidateIDs - Candidates for touching query.
193706
- * @return {?Array< {id, drawable, intersection} >} Filtered candidates with useful data.
193722
+ * @returns {?Array< {id, drawable, intersection} >} Filtered candidates with useful data.
193707
193723
  */
193708
193724
  }, {
193709
193725
  key: "_candidatesTouching",
@@ -193747,7 +193763,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193747
193763
  * Helper to get the union bounds from a set of candidates returned from the above method
193748
193764
  * @private
193749
193765
  * @param {Array<object>} candidates info from _candidatesTouching
193750
- * @return {Rectangle} the outer bounding box union
193766
+ * @returns {Rectangle} the outer bounding box union
193751
193767
  */
193752
193768
  }, {
193753
193769
  key: "_candidatesBounds",
@@ -193890,7 +193906,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
193890
193906
  * Update the position object's x & y members to keep the drawable fenced in view.
193891
193907
  * @param {int} drawableID - The ID of the Drawable to update.
193892
193908
  * @param {Array.<number, number>} position to be fenced - An array of type [x, y]
193893
- * @return {Array.<number, number>} The fenced position as an array [x, y]
193909
+ * @returns {Array.<number, number>} The fenced position as an array [x, y]
193894
193910
  */
193895
193911
  }, {
193896
193912
  key: "getFencedPositionOfDrawable",
@@ -194061,7 +194077,6 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
194061
194077
  * region. Since one region may be entered from within another a exit
194062
194078
  * handle can also be registered that is called when a new region is about
194063
194079
  * to be entered to restore a common inbetween state.
194064
- *
194065
194080
  * @param {any} regionId - id of the region to enter
194066
194081
  * @param {function} enter - handle to call when first entering a region
194067
194082
  * @param {function} exit - handle to call when leaving a region
@@ -194172,7 +194187,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
194172
194187
  * Get the convex hull points for a particular Drawable.
194173
194188
  * To do this, calculate it based on the drawable's Silhouette.
194174
194189
  * @param {int} drawableID The Drawable IDs calculate convex hull for.
194175
- * @return {Array<Array<number>>} points Convex hull points, as [[x, y], ...]
194190
+ * @returns {Array<Array<number>>} points Convex hull points, as [[x, y], ...]
194176
194191
  */
194177
194192
  }, {
194178
194193
  key: "_getConvexHullPointsForDrawable",
@@ -194192,11 +194207,10 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
194192
194207
  *
194193
194208
  * The determinant is useful in this case to know if AC is counter-clockwise from AB.
194194
194209
  * A positive value means that AC is counter-clockwise from AB. A negative value means AC is clockwise from AB.
194195
- *
194196
194210
  * @param {Float32Array} A A 2d vector in space.
194197
194211
  * @param {Float32Array} B A 2d vector in space.
194198
194212
  * @param {Float32Array} C A 2d vector in space.
194199
- * @return {number} Greater than 0 if counter clockwise, less than if clockwise, 0 if all points are on a line.
194213
+ * @returns {number} Greater than 0 if counter clockwise, less than if clockwise, 0 if all points are on a line.
194200
194214
  */
194201
194215
  var determinant = function determinant(A, B, C) {
194202
194216
  // AB = B - A
@@ -194308,7 +194322,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
194308
194322
  * @param {Array<Drawables>} drawables A list of drawables with the "top most"
194309
194323
  * drawable at index 0
194310
194324
  * @param {Uint8ClampedArray} dst The color3b space to store the answer in.
194311
- * @return {Uint8ClampedArray} The dst vector with everything blended down.
194325
+ * @returns {Uint8ClampedArray} The dst vector with everything blended down.
194312
194326
  */
194313
194327
  }, {
194314
194328
  key: "requestSnapshot",
@@ -194338,6 +194352,7 @@ var RenderWebGL = /*#__PURE__*/function (_EventEmitter) {
194338
194352
  // Create the context the same way that the constructor will: attributes may make the difference.
194339
194353
  return !!RenderWebGL._getContext(optCanvas || document.createElement('canvas'));
194340
194354
  } catch (e) {
194355
+ // eslint-disable-line no-unused-vars
194341
194356
  return false;
194342
194357
  }
194343
194358
  }
@@ -194454,7 +194469,7 @@ var MAX_TEXTURE_DIMENSION = 2048;
194454
194469
  * All scaled renderings of the SVG are stored in an array. The 1.0 scale of
194455
194470
  * the SVG is stored at the 8th index. The smallest possible 1 / 256 scale
194456
194471
  * rendering is stored at the 0th index.
194457
- * @const {number}
194472
+ * @constant {number}
194458
194473
  */
194459
194474
  var INDEX_OFFSET = 8;
194460
194475
  var SVGSkin = /*#__PURE__*/function (_Skin) {
@@ -194462,8 +194477,8 @@ var SVGSkin = /*#__PURE__*/function (_Skin) {
194462
194477
  * Create a new SVG skin.
194463
194478
  * @param {!int} id - The ID for this Skin.
194464
194479
  * @param {!RenderWebGL} renderer - The renderer which will use this skin.
194465
- * @constructor
194466
- * @extends Skin
194480
+ * @class
194481
+ * @augments Skin
194467
194482
  */
194468
194483
  function SVGSkin(id, renderer) {
194469
194484
  var _this;
@@ -194495,9 +194510,9 @@ var SVGSkin = /*#__PURE__*/function (_Skin) {
194495
194510
  _this._largestMIPScale = 0;
194496
194511
 
194497
194512
  /**
194498
- * Ratio of the size of the SVG and the max size of the WebGL texture
194499
- * @type {Number}
194500
- */
194513
+ * Ratio of the size of the SVG and the max size of the WebGL texture
194514
+ * @type {number}
194515
+ */
194501
194516
  _this._maxTextureScale = 1;
194502
194517
  return _this;
194503
194518
  }
@@ -194514,7 +194529,7 @@ var SVGSkin = /*#__PURE__*/function (_Skin) {
194514
194529
  }
194515
194530
 
194516
194531
  /**
194517
- * @return {Array<number>} the natural size, in Scratch units, of this skin.
194532
+ * @returns {Array<number>} the natural size, in Scratch units, of this skin.
194518
194533
  */
194519
194534
  }, {
194520
194535
  key: "size",
@@ -194549,7 +194564,7 @@ var SVGSkin = /*#__PURE__*/function (_Skin) {
194549
194564
  /**
194550
194565
  * Create a MIP for a given scale.
194551
194566
  * @param {number} scale - The relative size of the MIP
194552
- * @return {SVGMIP} An object that handles creating and updating SVG textures.
194567
+ * @returns {SVGMIP} An object that handles creating and updating SVG textures.
194553
194568
  */
194554
194569
  }, {
194555
194570
  key: "createMIP",
@@ -194598,7 +194613,7 @@ var SVGSkin = /*#__PURE__*/function (_Skin) {
194598
194613
 
194599
194614
  /**
194600
194615
  * @param {Array<number>} scale - The scaling factors to be used, each in the [0,100] range.
194601
- * @return {WebGLTexture} The GL texture representation of this skin when drawing at the given scale.
194616
+ * @returns {WebGLTexture} The GL texture representation of this skin when drawing at the given scale.
194602
194617
  */
194603
194618
  }, {
194604
194619
  key: "getTexture",
@@ -194705,7 +194720,7 @@ var twgl = __webpack_require__(/*! twgl.js */ "../../node_modules/twgl.js/dist/4
194705
194720
  var ShaderManager = /*#__PURE__*/function () {
194706
194721
  /**
194707
194722
  * @param {WebGLRenderingContext} gl WebGL rendering context to create shaders for
194708
- * @constructor
194723
+ * @class
194709
194724
  */
194710
194725
  function ShaderManager(gl) {
194711
194726
  _classCallCheck(this, ShaderManager);
@@ -194764,23 +194779,19 @@ var ShaderManager = /*#__PURE__*/function () {
194764
194779
  }
194765
194780
  }
194766
194781
  var definesText = "".concat(defines.join('\n'), "\n");
194767
-
194768
- /* eslint-disable global-require */
194769
194782
  var vsFullText = definesText + __webpack_require__(/*! raw-loader!./shaders/sprite.vert */ "./node_modules/raw-loader/index.js!./src/shaders/sprite.vert");
194770
194783
  var fsFullText = definesText + __webpack_require__(/*! raw-loader!./shaders/sprite.frag */ "./node_modules/raw-loader/index.js!./src/shaders/sprite.frag");
194771
- /* eslint-enable global-require */
194772
-
194773
194784
  return twgl.createProgramInfo(this._gl, [vsFullText, fsFullText]);
194774
194785
  }
194775
194786
  }]);
194776
194787
  }();
194777
194788
  /**
194778
194789
  * @typedef {object} ShaderManager.Effect
194779
- * @prop {int} mask - The bit in 'effectBits' representing the effect.
194780
- * @prop {function} converter - A conversion function which takes a Scratch value (generally in the range
194790
+ * @property {int} mask - The bit in 'effectBits' representing the effect.
194791
+ * @property {function} converter - A conversion function which takes a Scratch value (generally in the range
194781
194792
  * 0..100 or -100..100) and maps it to a value useful to the shader. This
194782
194793
  * mapping may not be reversible.
194783
- * @prop {boolean} shapeChanges - Whether the effect could change the drawn shape.
194794
+ * @property {boolean} shapeChanges - Whether the effect could change the drawn shape.
194784
194795
  */
194785
194796
  /**
194786
194797
  * Mapping of each effect name to info about that effect.
@@ -194908,7 +194919,7 @@ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r),
194908
194919
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
194909
194920
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
194910
194921
  /**
194911
- * @fileoverview
194922
+ * @file
194912
194923
  * A representation of a Skin's silhouette that can test if a point on the skin
194913
194924
  * renders a pixel where it is drawn.
194914
194925
  */
@@ -194935,7 +194946,7 @@ var intMax = function intMax(i, j) {
194935
194946
  * @param {Silhouette} silhouette - has data width and height
194936
194947
  * @param {number} x - x
194937
194948
  * @param {number} y - y
194938
- * @return {number} Alpha value for x/y position
194949
+ * @returns {number} Alpha value for x/y position
194939
194950
  */
194940
194951
  var getPoint = function getPoint(_ref, x, y) {
194941
194952
  var width = _ref._width,
@@ -194960,7 +194971,7 @@ var __cornerWork = [new Uint8ClampedArray(4), new Uint8ClampedArray(4), new Uint
194960
194971
  * @param {number} x X position of texture [0, width).
194961
194972
  * @param {number} y Y position of texture [0, height).
194962
194973
  * @param {Uint8ClampedArray} dst A color 4b space.
194963
- * @return {Uint8ClampedArray} The dst vector.
194974
+ * @returns {Uint8ClampedArray} The dst vector.
194964
194975
  */
194965
194976
  var getColor4b = function getColor4b(_ref2, x, y, dst) {
194966
194977
  var width = _ref2._width,
@@ -194992,7 +195003,7 @@ var getColor4b = function getColor4b(_ref2, x, y, dst) {
194992
195003
  * @param {number} x X position of texture [0, width).
194993
195004
  * @param {number} y Y position of texture [0, height).
194994
195005
  * @param {Uint8ClampedArray} dst A color 4b space.
194995
- * @return {Uint8ClampedArray} The dst vector.
195006
+ * @returns {Uint8ClampedArray} The dst vector.
194996
195007
  */
194997
195008
  var getPremultipliedColor4b = function getPremultipliedColor4b(_ref3, x, y, dst) {
194998
195009
  var width = _ref3._width,
@@ -195125,7 +195136,7 @@ var Silhouette = /*#__PURE__*/function () {
195125
195136
  /**
195126
195137
  * Test if texture coordinate touches the silhouette using nearest neighbor.
195127
195138
  * @param {twgl.v3} vec A texture coordinate.
195128
- * @return {boolean} If the nearest pixel has an alpha value.
195139
+ * @returns {boolean} If the nearest pixel has an alpha value.
195129
195140
  */
195130
195141
  }, {
195131
195142
  key: "isTouchingNearest",
@@ -195138,7 +195149,7 @@ var Silhouette = /*#__PURE__*/function () {
195138
195149
  * Test to see if any of the 4 pixels used in the linear interpolate touch
195139
195150
  * the silhouette.
195140
195151
  * @param {twgl.v3} vec A texture coordinate.
195141
- * @return {boolean} Any of the pixels have some alpha.
195152
+ * @returns {boolean} Any of the pixels have some alpha.
195142
195153
  */
195143
195154
  }, {
195144
195155
  key: "isTouchingLinear",
@@ -195152,7 +195163,7 @@ var Silhouette = /*#__PURE__*/function () {
195152
195163
  /**
195153
195164
  * Get the canvas element reused by Silhouettes to update their data with.
195154
195165
  * @private
195155
- * @return {CanvasElement} A canvas to draw bitmap data to.
195166
+ * @returns {CanvasElement} A canvas to draw bitmap data to.
195156
195167
  */
195157
195168
  }], [{
195158
195169
  key: "_updateCanvas",
@@ -195195,7 +195206,7 @@ var Skin = /*#__PURE__*/function (_EventEmitter) {
195195
195206
  /**
195196
195207
  * Create a Skin, which stores and/or generates textures for use in rendering.
195197
195208
  * @param {int} id - The unique ID for this Skin.
195198
- * @constructor
195209
+ * @class
195199
195210
  */
195200
195211
  function Skin(id) {
195201
195212
  var _this;
@@ -195250,7 +195261,7 @@ var Skin = /*#__PURE__*/function (_EventEmitter) {
195250
195261
  }
195251
195262
 
195252
195263
  /**
195253
- * @return {int} the unique ID for this Skin.
195264
+ * @returns {int} the unique ID for this Skin.
195254
195265
  */
195255
195266
  }, {
195256
195267
  key: "id",
@@ -195269,7 +195280,7 @@ var Skin = /*#__PURE__*/function (_EventEmitter) {
195269
195280
 
195270
195281
  /**
195271
195282
  * @abstract
195272
- * @return {Array<number>} the "native" size, in texels, of this skin.
195283
+ * @returns {Array<number>} the "native" size, in texels, of this skin.
195273
195284
  */
195274
195285
  }, {
195275
195286
  key: "size",
@@ -195279,10 +195290,10 @@ var Skin = /*#__PURE__*/function (_EventEmitter) {
195279
195290
 
195280
195291
  /**
195281
195292
  * Should this skin's texture be filtered with nearest-neighbor or linear interpolation at the given scale?
195282
- * @param {?Array<Number>} scale The screen-space X and Y scaling factors at which this skin's texture will be
195293
+ * @param {?Array<number>} scale The screen-space X and Y scaling factors at which this skin's texture will be
195283
195294
  * displayed, as percentages (100 means 1 "native size" unit is 1 screen pixel; 200 means 2 screen pixels, etc).
195284
195295
  * @param {Drawable} drawable The drawable that this skin's texture will be applied to.
195285
- * @return {boolean} True if this skin's texture, as returned by {@link getTexture}, should be filtered with
195296
+ * @returns {boolean} True if this skin's texture, as returned by {@link getTexture}, should be filtered with
195286
195297
  * nearest-neighbor interpolation.
195287
195298
  */
195288
195299
  // eslint-disable-next-line no-unused-vars
@@ -195294,7 +195305,7 @@ var Skin = /*#__PURE__*/function (_EventEmitter) {
195294
195305
 
195295
195306
  /**
195296
195307
  * Get the center of the current bounding box
195297
- * @return {Array<number>} the center of the current bounding box
195308
+ * @returns {Array<number>} the center of the current bounding box
195298
195309
  */
195299
195310
  }, {
195300
195311
  key: "calculateRotationCenter",
@@ -195305,7 +195316,7 @@ var Skin = /*#__PURE__*/function (_EventEmitter) {
195305
195316
  /**
195306
195317
  * @abstract
195307
195318
  * @param {Array<number>} scale - The scaling factors to be used.
195308
- * @return {WebGLTexture} The GL texture representation of this skin when drawing at the given size.
195319
+ * @returns {WebGLTexture} The GL texture representation of this skin when drawing at the given size.
195309
195320
  */
195310
195321
  // eslint-disable-next-line no-unused-vars
195311
195322
  }, {
@@ -195318,7 +195329,7 @@ var Skin = /*#__PURE__*/function (_EventEmitter) {
195318
195329
  * Get the bounds of the drawable for determining its fenced position.
195319
195330
  * @param {Array<number>} drawable - The Drawable instance this skin is using.
195320
195331
  * @param {?Rectangle} result - Optional destination for bounds calculation.
195321
- * @return {!Rectangle} The drawable's bounds. For compatibility with Scratch 2, we always use getAABB.
195332
+ * @returns {!Rectangle} The drawable's bounds. For compatibility with Scratch 2, we always use getAABB.
195322
195333
  */
195323
195334
  }, {
195324
195335
  key: "getFenceBounds",
@@ -195405,7 +195416,7 @@ var Skin = /*#__PURE__*/function (_EventEmitter) {
195405
195416
  * @see updateSilhouette
195406
195417
  * @see Drawable.updateCPURenderAttributes
195407
195418
  * @param {twgl.v3} vec A texture coordinate.
195408
- * @return {boolean} Did it touch?
195419
+ * @returns {boolean} Did it touch?
195409
195420
  */
195410
195421
  }, {
195411
195422
  key: "isTouchingNearest",
@@ -195420,7 +195431,7 @@ var Skin = /*#__PURE__*/function (_EventEmitter) {
195420
195431
  * @see updateSilhouette
195421
195432
  * @see Drawable.updateCPURenderAttributes
195422
195433
  * @param {twgl.v3} vec A texture coordinate.
195423
- * @return {boolean} Did it touch?
195434
+ * @returns {boolean} Did it touch?
195424
195435
  */
195425
195436
  }, {
195426
195437
  key: "isTouchingLinear",
@@ -195508,8 +195519,8 @@ var TextBubbleSkin = /*#__PURE__*/function (_Skin) {
195508
195519
  * Create a new text bubble skin.
195509
195520
  * @param {!int} id - The ID for this Skin.
195510
195521
  * @param {!RenderWebGL} renderer - The renderer which will use this skin.
195511
- * @constructor
195512
- * @extends Skin
195522
+ * @class
195523
+ * @augments Skin
195513
195524
  */
195514
195525
  function TextBubbleSkin(id, renderer) {
195515
195526
  var _this;
@@ -195570,7 +195581,7 @@ var TextBubbleSkin = /*#__PURE__*/function (_Skin) {
195570
195581
  }
195571
195582
 
195572
195583
  /**
195573
- * @return {Array<number>} the dimensions, in Scratch units, of this skin.
195584
+ * @returns {Array<number>} the dimensions, in Scratch units, of this skin.
195574
195585
  */
195575
195586
  }, {
195576
195587
  key: "size",
@@ -195736,7 +195747,7 @@ var TextBubbleSkin = /*#__PURE__*/function (_Skin) {
195736
195747
 
195737
195748
  /**
195738
195749
  * @param {Array<number>} scale - The scaling factors to be used, each in the [0,100] range.
195739
- * @return {WebGLTexture} The GL texture representation of this skin when drawing at the given scale.
195750
+ * @returns {WebGLTexture} The GL texture representation of this skin when drawing at the given scale.
195740
195751
  */
195741
195752
  }, {
195742
195753
  key: "getTexture",
@@ -195860,13 +195871,12 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
195860
195871
  * adapted from http://lolengine.net/blog/2013/01/13/fast-rgb-to-hsv.
195861
195872
  * Assumes r, g, and b are in the range [0, 255] and
195862
195873
  * returns h, s, and v in the range [0, 1].
195863
- *
195864
195874
  * @param {Array<number>} rgb The RGB color value
195865
195875
  * @param {number} rgb.r The red color value
195866
195876
  * @param {number} rgb.g The green color value
195867
195877
  * @param {number} rgb.b The blue color value
195868
195878
  * @param {Array<number>} dst The array to store the HSV values in
195869
- * @return {Array<number>} The `dst` array passed in
195879
+ * @returns {Array<number>} The `dst` array passed in
195870
195880
  */
195871
195881
  var rgbToHsv = function rgbToHsv(_ref, dst) {
195872
195882
  var _ref2 = _slicedToArray(_ref, 3),
@@ -195905,13 +195915,12 @@ var rgbToHsv = function rgbToHsv(_ref, dst) {
195905
195915
  * adapted from https://gist.github.com/mjackson/5311256.
195906
195916
  * Assumes h, s, and v are contained in the set [0, 1] and
195907
195917
  * returns r, g, and b in the set [0, 255].
195908
- *
195909
195918
  * @param {Array<number>} hsv The HSV color value
195910
195919
  * @param {number} hsv.h The hue
195911
195920
  * @param {number} hsv.s The saturation
195912
195921
  * @param {number} hsv.v The value
195913
195922
  * @param {Uint8Array|Uint8ClampedArray} dst The array to store the RGB values in
195914
- * @return {Uint8Array|Uint8ClampedArray} The `dst` array passed in
195923
+ * @returns {Uint8Array|Uint8ClampedArray} The `dst` array passed in
195915
195924
  */
195916
195925
  var hsvToRgb = function hsvToRgb(_ref3, dst) {
195917
195926
  var _ref4 = _slicedToArray(_ref3, 3),