@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.
- package/LICENSE +656 -7
- package/TRADEMARK +1 -0
- package/dist/node/scratch-render.js +611 -602
- package/dist/node/scratch-render.js.map +1 -1
- package/dist/web/scratch-render.js +900 -589
- package/dist/web/scratch-render.js.map +1 -1
- package/dist/web/scratch-render.min.js +900 -589
- package/dist/web/scratch-render.min.js.map +1 -1
- package/package.json +19 -18
- package/src/BitmapSkin.js +4 -4
- package/src/Drawable.js +13 -13
- package/src/EffectTransform.js +4 -4
- package/src/PenSkin.js +4 -4
- package/src/Rectangle.js +5 -5
- package/src/RenderConstants.js +2 -3
- package/src/RenderWebGL.js +26 -33
- package/src/SVGSkin.js +9 -9
- package/src/ShaderManager.js +6 -6
- package/src/Silhouette.js +7 -7
- package/src/Skin.js +10 -10
- package/src/TextBubbleSkin.js +4 -4
- package/src/playground/playground.js +0 -1
- package/src/util/color-conversions.js +2 -4
- package/src/.eslintrc.js +0 -11
- package/src/playground/.eslintrc.js +0 -9
|
@@ -25090,7 +25090,7 @@ var __WEBPACK_AMD_DEFINE_RESULT__;;(function (globalScope) {
|
|
|
25090
25090
|
/***/ ((module) => {
|
|
25091
25091
|
|
|
25092
25092
|
"use strict";
|
|
25093
|
-
/*! @license DOMPurify 3.
|
|
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', '
|
|
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.
|
|
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 (
|
|
25706
|
-
|
|
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 (
|
|
25712
|
-
|
|
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/
|
|
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 {?
|
|
188581
|
-
* @param {?
|
|
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 {!
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
/**
|
|
190798
|
+
/**
|
|
190799
|
+
* A bitmask identifying which effects are currently in use.
|
|
190778
190800
|
* @readonly
|
|
190779
|
-
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
|
192423
|
-
* @param {int} [xRight
|
|
192424
|
-
* @param {int} [yBottom
|
|
192425
|
-
* @param {int} [yTop
|
|
192426
|
-
* @
|
|
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<
|
|
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
|
-
* @
|
|
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
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
194466
|
-
* @
|
|
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
|
-
|
|
194499
|
-
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
194780
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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<
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
195512
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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),
|