forked from xcratch/xcx-example
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathxcratchExample.mjs.map
More file actions
1 lines (1 loc) · 138 KB
/
xcratchExample.mjs.map
File metadata and controls
1 lines (1 loc) · 138 KB
1
{"version":3,"file":"xcratchExample.mjs","sources":["../src/gui/lib/libraries/extensions/entry/entry-icon.png","../src/gui/lib/libraries/extensions/entry/inset-icon.svg","../src/gui/lib/libraries/extensions/entry/index.jsx","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../../scratch-vm/src/extension-support/block-type.js","../../scratch-vm/src/extension-support/argument-type.js","../../scratch-vm/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../scratch-vm/node_modules/@babel/runtime/helpers/esm/typeof.js","../../scratch-vm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../scratch-vm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../scratch-vm/node_modules/@babel/runtime/helpers/esm/createClass.js","../../scratch-vm/src/util/color.js","../../scratch-vm/src/util/cast.js","../../scratch-vm/node_modules/microee/index.js","../../scratch-vm/node_modules/minilog/lib/common/transform.js","../../scratch-vm/node_modules/minilog/lib/common/filter.js","../../scratch-vm/node_modules/minilog/lib/common/minilog.js","../../scratch-vm/node_modules/minilog/lib/web/formatters/util.js","../../scratch-vm/node_modules/minilog/lib/web/formatters/color.js","../../scratch-vm/node_modules/minilog/lib/web/formatters/minilog.js","../../scratch-vm/node_modules/minilog/lib/web/console.js","../../scratch-vm/node_modules/minilog/lib/web/array.js","../../scratch-vm/node_modules/minilog/lib/web/localstorage.js","../../scratch-vm/node_modules/minilog/lib/web/jquery_simple.js","../../scratch-vm/node_modules/minilog/lib/web/index.js","../../scratch-vm/src/util/log.js","../src/vm/extensions/block/block-icon.png","../src/vm/extensions/block/index.js"],"sourcesContent":["var img = \"data:image/png;base64,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\";\n export default img;","var img = \"data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg width='100%25' height='100%25' viewBox='0 0 53 53' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' xmlns:serif='http://www.serif.com/' style='fill-rule:evenodd%3bclip-rule:evenodd%3bstroke-linejoin:round%3bstroke-miterlimit:2%3b'%3e%3crect id='%e3%82%a2%e3%83%bc%e3%83%88%e3%83%9c%e3%83%bc%e3%83%891' x='0' y='-0' width='52.083' height='52.056' style='fill:none%3b'/%3e%3cclipPath id='_clip1'%3e%3crect x='0' y='-0' width='52.083' height='52.056'/%3e%3c/clipPath%3e%3cg clip-path='url(%23_clip1)'%3e%3cg%3e%3cg%3e%3cpath d='M17.605%2c14.113c1.125%2c0.983 1.582%2c2.148 2.563%2c3.17c2.407%2c2.507 4.811%2c5.102 7.423%2c7.551c4.352%2c4.079 10.045%2c7.577 14.675%2c11.435' style='fill:none%3bstroke:white%3bstroke-width:19.17px%3bstroke-linecap:round%3bstroke-miterlimit:1.5%3b'/%3e%3cpath d='M40.824%2c11.292c-0.914%2c2.03 -3.668%2c3.898 -5.723%2c5.559c-2.684%2c2.171 -5.276%2c4.398 -7.941%2c6.581c-7.278%2c5.958 -12.955%2c12.359 -18.301%2c19.04' style='fill:none%3bstroke:white%3bstroke-width:19.17px%3bstroke-linecap:round%3bstroke-miterlimit:1.5%3b'/%3e%3c/g%3e%3cg%3e%3cpath d='M17.605%2c14.113c1.125%2c0.983 1.582%2c2.148 2.563%2c3.17c2.407%2c2.507 4.811%2c5.102 7.423%2c7.551c4.352%2c4.079 10.045%2c7.577 14.675%2c11.435' style='fill:none%3bstroke:%23f9a83a%3bstroke-width:12.5px%3bstroke-linecap:round%3bstroke-miterlimit:1.5%3b'/%3e%3cpath d='M40.824%2c11.292c-0.914%2c2.03 -3.668%2c3.898 -5.723%2c5.559c-2.684%2c2.171 -5.276%2c4.398 -7.941%2c6.581c-7.278%2c5.958 -12.955%2c12.359 -18.301%2c19.04' style='fill:none%3bstroke:%23f9a83a%3bstroke-width:12.5px%3bstroke-linecap:round%3bstroke-miterlimit:1.5%3b'/%3e%3c/g%3e%3cg%3e%3cpath d='M16.783%2c15.055c0.264%2c0.231 0.482%2c0.475 0.679%2c0.725c0.621%2c0.785 1.078%2c1.612 1.804%2c2.368c1.456%2c1.517 2.91%2c3.065 4.41%2c4.594c0.996%2c1.015 2.012%2c2.021 3.06%2c3.004c1.353%2c1.268 2.831%2c2.481 4.368%2c3.666c3.429%2c2.643 7.152%2c5.143 10.362%2c7.817c0.53%2c0.442 1.319%2c0.37 1.76%2c-0.16c0.442%2c-0.53 0.37%2c-1.319 -0.16%2c-1.76c-3.233%2c-2.694 -6.982%2c-5.215 -10.435%2c-7.877c-1.472%2c-1.135 -2.89%2c-2.296 -4.185%2c-3.51c-1.023%2c-0.959 -2.014%2c-1.941 -2.985%2c-2.931c-1.494%2c-1.522 -2.942%2c-3.064 -4.392%2c-4.574c-0.667%2c-0.695 -1.075%2c-1.465 -1.645%2c-2.187c-0.288%2c-0.365 -0.61%2c-0.72 -0.997%2c-1.058c-0.52%2c-0.454 -1.31%2c-0.4 -1.764%2c0.119c-0.453%2c0.52 -0.4%2c1.31 0.12%2c1.764Z' style='fill:white%3b'/%3e%3cpath d='M39.685%2c10.779c-0.331%2c0.733 -0.963%2c1.428 -1.694%2c2.108c-1.138%2c1.059 -2.52%2c2.058 -3.676%2c2.992l-7.947%2c6.585c-3.596%2c2.944 -6.805%2c5.995 -9.778%2c9.133c-3.104%2c3.276 -5.949%2c6.648 -8.707%2c10.094c-0.431%2c0.539 -0.343%2c1.326 0.195%2c1.757c0.539%2c0.431 1.326%2c0.344 1.757%2c-0.195c2.715%2c-3.392 5.515%2c-6.712 8.57%2c-9.937c2.903%2c-3.064 6.036%2c-6.043 9.547%2c-8.917l7.935%2c-6.576c1.418%2c-1.146 3.155%2c-2.393 4.43%2c-3.716c0.716%2c-0.743 1.293%2c-1.516 1.647%2c-2.301c0.283%2c-0.629 0.003%2c-1.37 -0.626%2c-1.653c-0.629%2c-0.284 -1.37%2c-0.003 -1.653%2c0.626Z' style='fill:white%3b'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e\";\n export default img;","/**\n * This is an extension for Xcratch.\n */\n\nimport iconURL from './entry-icon.png';\nimport insetIconURL from './inset-icon.svg';\nimport translations from './translations.json';\n\n/**\n * Formatter to translate the messages in this extension.\n * This will be replaced which is used in the React component.\n * @param {object} messageData - data for format-message\n * @returns {string} - translated message for the current locale\n */\nlet formatMessage = messageData => messageData.defaultMessage;\n\nconst entry = {\n get name () {\n return formatMessage({\n id: 'xcratchExample.entry.name',\n defaultMessage: 'Xcratch Example',\n description: 'name of the extension'\n });\n },\n extensionId: 'xcratchExample',\n extensionURL: 'https://xcratch.github.io/xcx-example/dist/xcratchExample.mjs',\n collaborator: 'xcratch',\n iconURL: iconURL,\n insetIconURL: insetIconURL,\n get description () {\n return formatMessage({\n defaultMessage: 'an extension for Xcratch',\n description: 'Description for this extension',\n id: 'xcratchExample.entry.description'\n });\n },\n featured: true,\n disabled: false,\n bluetoothRequired: false,\n internetConnectionRequired: false,\n helpLink: 'https://xcratch.github.io/xcx-example/',\n setFormatMessage: formatter => {\n formatMessage = formatter;\n },\n translationMap: translations\n};\n\nexport {entry}; // loadable-extension needs this line.\nexport default entry;\n","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","/**\n * Types of block\n * @enum {string}\n */\nconst BlockType = {\n /**\n * Boolean reporter with hexagonal shape\n */\n BOOLEAN: 'Boolean',\n\n /**\n * A button (not an actual block) for some special action, like making a variable\n */\n BUTTON: 'button',\n\n /**\n * Command block\n */\n COMMAND: 'command',\n\n /**\n * Specialized command block which may or may not run a child branch\n * The thread continues with the next block whether or not a child branch ran.\n */\n CONDITIONAL: 'conditional',\n\n /**\n * Specialized hat block with no implementation function\n * This stack only runs if the corresponding event is emitted by other code.\n */\n EVENT: 'event',\n\n /**\n * Hat block which conditionally starts a block stack\n */\n HAT: 'hat',\n\n /**\n * Specialized command block which may or may not run a child branch\n * If a child branch runs, the thread evaluates the loop block again.\n */\n LOOP: 'loop',\n\n /**\n * General reporter with numeric or string value\n */\n REPORTER: 'reporter'\n};\n\nmodule.exports = BlockType;\n","/**\n * Block argument types\n * @enum {string}\n */\nconst ArgumentType = {\n /**\n * Numeric value with angle picker\n */\n ANGLE: 'angle',\n\n /**\n * Boolean value with hexagonal placeholder\n */\n BOOLEAN: 'Boolean',\n\n /**\n * Numeric value with color picker\n */\n COLOR: 'color',\n\n /**\n * Numeric value with text field\n */\n NUMBER: 'number',\n\n /**\n * String value with text field\n */\n STRING: 'string',\n\n /**\n * String value with matrix field\n */\n MATRIX: 'matrix',\n\n /**\n * MIDI note number with note picker (piano) field\n */\n NOTE: 'note',\n\n /**\n * Inline image on block (as part of the label)\n */\n IMAGE: 'image'\n};\n\nmodule.exports = ArgumentType;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","class Color {\n /**\n * @typedef {object} RGBObject - An object representing a color in RGB format.\n * @property {number} r - the red component, in the range [0, 255].\n * @property {number} g - the green component, in the range [0, 255].\n * @property {number} b - the blue component, in the range [0, 255].\n */\n\n /**\n * @typedef {object} HSVObject - An object representing a color in HSV format.\n * @property {number} h - hue, in the range [0-359).\n * @property {number} s - saturation, in the range [0,1].\n * @property {number} v - value, in the range [0,1].\n */\n\n /** @type {RGBObject} */\n static get RGB_BLACK () {\n return {r: 0, g: 0, b: 0};\n }\n\n /** @type {RGBObject} */\n static get RGB_WHITE () {\n return {r: 255, g: 255, b: 255};\n }\n\n /**\n * Convert a Scratch decimal color to a hex string, #RRGGBB.\n * @param {number} decimal RGB color as a decimal.\n * @return {string} RGB color as #RRGGBB hex string.\n */\n static decimalToHex (decimal) {\n if (decimal < 0) {\n decimal += 0xFFFFFF + 1;\n }\n let hex = Number(decimal).toString(16);\n hex = `#${'000000'.substr(0, 6 - hex.length)}${hex}`;\n return hex;\n }\n\n /**\n * Convert a Scratch decimal color to an RGB color object.\n * @param {number} decimal RGB color as decimal.\n * @return {RGBObject} rgb - {r: red [0,255], g: green [0,255], b: blue [0,255]}.\n */\n static decimalToRgb (decimal) {\n const a = (decimal >> 24) & 0xFF;\n const r = (decimal >> 16) & 0xFF;\n const g = (decimal >> 8) & 0xFF;\n const b = decimal & 0xFF;\n return {r: r, g: g, b: b, a: a > 0 ? a : 255};\n }\n\n /**\n * Convert a hex color (e.g., F00, #03F, #0033FF) to an RGB color object.\n * CC-BY-SA Tim Down:\n * https://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb\n * @param {!string} hex Hex representation of the color.\n * @return {RGBObject} null on failure, or rgb: {r: red [0,255], g: green [0,255], b: blue [0,255]}.\n */\n static hexToRgb (hex) {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n hex = hex.replace(shorthandRegex, (m, r, g, b) => r + r + g + g + b + b);\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n }\n\n /**\n * Convert an RGB color object to a hex color.\n * @param {RGBObject} rgb - {r: red [0,255], g: green [0,255], b: blue [0,255]}.\n * @return {!string} Hex representation of the color.\n */\n static rgbToHex (rgb) {\n return Color.decimalToHex(Color.rgbToDecimal(rgb));\n }\n\n /**\n * Convert an RGB color object to a Scratch decimal color.\n * @param {RGBObject} rgb - {r: red [0,255], g: green [0,255], b: blue [0,255]}.\n * @return {!number} Number representing the color.\n */\n static rgbToDecimal (rgb) {\n return (rgb.r << 16) + (rgb.g << 8) + rgb.b;\n }\n\n /**\n * Convert a hex color (e.g., F00, #03F, #0033FF) to a decimal color number.\n * @param {!string} hex Hex representation of the color.\n * @return {!number} Number representing the color.\n */\n static hexToDecimal (hex) {\n return Color.rgbToDecimal(Color.hexToRgb(hex));\n }\n\n /**\n * Convert an HSV color to RGB format.\n * @param {HSVObject} hsv - {h: hue [0,360), s: saturation [0,1], v: value [0,1]}\n * @return {RGBObject} rgb - {r: red [0,255], g: green [0,255], b: blue [0,255]}.\n */\n static hsvToRgb (hsv) {\n let h = hsv.h % 360;\n if (h < 0) h += 360;\n const s = Math.max(0, Math.min(hsv.s, 1));\n const v = Math.max(0, Math.min(hsv.v, 1));\n\n const i = Math.floor(h / 60);\n const f = (h / 60) - i;\n const p = v * (1 - s);\n const q = v * (1 - (s * f));\n const t = v * (1 - (s * (1 - f)));\n\n let r;\n let g;\n let b;\n\n switch (i) {\n default:\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n }\n\n return {\n r: Math.floor(r * 255),\n g: Math.floor(g * 255),\n b: Math.floor(b * 255)\n };\n }\n\n /**\n * Convert an RGB color to HSV format.\n * @param {RGBObject} rgb - {r: red [0,255], g: green [0,255], b: blue [0,255]}.\n * @return {HSVObject} hsv - {h: hue [0,360), s: saturation [0,1], v: value [0,1]}\n */\n static rgbToHsv (rgb) {\n const r = rgb.r / 255;\n const g = rgb.g / 255;\n const b = rgb.b / 255;\n const x = Math.min(Math.min(r, g), b);\n const v = Math.max(Math.max(r, g), b);\n\n // For grays, hue will be arbitrarily reported as zero. Otherwise, calculate\n let h = 0;\n let s = 0;\n if (x !== v) {\n const f = (r === x) ? g - b : ((g === x) ? b - r : r - g);\n const i = (r === x) ? 3 : ((g === x) ? 5 : 1);\n h = ((i - (f / (v - x))) * 60) % 360;\n s = (v - x) / v;\n }\n\n return {h: h, s: s, v: v};\n }\n\n /**\n * Linear interpolation between rgb0 and rgb1.\n * @param {RGBObject} rgb0 - the color corresponding to fraction1 <= 0.\n * @param {RGBObject} rgb1 - the color corresponding to fraction1 >= 1.\n * @param {number} fraction1 - the interpolation parameter. If this is 0.5, for example, mix the two colors equally.\n * @return {RGBObject} the interpolated color.\n */\n static mixRgb (rgb0, rgb1, fraction1) {\n if (fraction1 <= 0) return rgb0;\n if (fraction1 >= 1) return rgb1;\n const fraction0 = 1 - fraction1;\n return {\n r: (fraction0 * rgb0.r) + (fraction1 * rgb1.r),\n g: (fraction0 * rgb0.g) + (fraction1 * rgb1.g),\n b: (fraction0 * rgb0.b) + (fraction1 * rgb1.b)\n };\n }\n}\n\nmodule.exports = Color;\n","const Color = require('../util/color');\n\n/**\n * @fileoverview\n * Utilities for casting and comparing Scratch data-types.\n * Scratch behaves slightly differently from JavaScript in many respects,\n * and these differences should be encapsulated below.\n * For example, in Scratch, add(1, join(\"hello\", world\")) -> 1.\n * This is because \"hello world\" is cast to 0.\n * In JavaScript, 1 + Number(\"hello\" + \"world\") would give you NaN.\n * Use when coercing a value before computation.\n */\n\nclass Cast {\n /**\n * Scratch cast to number.\n * Treats NaN as 0.\n * In Scratch 2.0, this is captured by `interp.numArg.`\n * @param {*} value Value to cast to number.\n * @return {number} The Scratch-casted number value.\n */\n static toNumber (value) {\n // If value is already a number we don't need to coerce it with\n // Number().\n if (typeof value === 'number') {\n // Scratch treats NaN as 0, when needed as a number.\n // E.g., 0 + NaN -> 0.\n if (Number.isNaN(value)) {\n return 0;\n }\n return value;\n }\n // Replace full-width numbers with half-width ones.\n value = value.replace(/[0-9+.e]/g, s => String.fromCharCode(s.charCodeAt(0) - 0xFEE0));\n value = value.replace(/[--﹣−‐⁃‑‒–—﹘―⎯⏤ーー─━]/g, '-');\n const n = Number(value);\n if (Number.isNaN(n)) {\n // Scratch treats NaN as 0, when needed as a number.\n // E.g., 0 + NaN -> 0.\n return 0;\n }\n return n;\n }\n\n /**\n * Scratch cast to boolean.\n * In Scratch 2.0, this is captured by `interp.boolArg.`\n * Treats some string values differently from JavaScript.\n * @param {*} value Value to cast to boolean.\n * @return {boolean} The Scratch-casted boolean value.\n */\n static toBoolean (value) {\n // Already a boolean?\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n // These specific strings are treated as false in Scratch.\n if ((value === '') ||\n (value === '0') ||\n (value.toLowerCase() === 'false')) {\n return false;\n }\n // All other strings treated as true.\n return true;\n }\n // Coerce other values and numbers.\n return Boolean(value);\n }\n\n /**\n * Scratch cast to string.\n * @param {*} value Value to cast to string.\n * @return {string} The Scratch-casted string value.\n */\n static toString (value) {\n return String(value)\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\t/g, '\\t');\n }\n\n /**\n * Cast any Scratch argument to an RGB color array to be used for the renderer.\n * @param {*} value Value to convert to RGB color array.\n * @return {Array.<number>} [r,g,b], values between 0-255.\n */\n static toRgbColorList (value) {\n const color = Cast.toRgbColorObject(value);\n return [color.r, color.g, color.b];\n }\n\n /**\n * Cast any Scratch argument to an RGB color object to be used for the renderer.\n * @param {*} value Value to convert to RGB color object.\n * @return {RGBOject} [r,g,b], values between 0-255.\n */\n static toRgbColorObject (value) {\n let color;\n if (typeof value === 'string' && value.substring(0, 1) === '#') {\n color = Color.hexToRgb(value);\n\n // If the color wasn't *actually* a hex color, cast to black\n if (!color) color = {r: 0, g: 0, b: 0, a: 255};\n } else {\n color = Color.decimalToRgb(Cast.toNumber(value));\n }\n return color;\n }\n\n /**\n * Determine if a Scratch argument is a white space string (or null / empty).\n * @param {*} val value to check.\n * @return {boolean} True if the argument is all white spaces or null / empty.\n */\n static isWhiteSpace (val) {\n return val === null || (typeof val === 'string' && val.trim().length === 0);\n }\n\n /**\n * Compare two values, using Scratch cast, case-insensitive string compare, etc.\n * In Scratch 2.0, this is captured by `interp.compare.`\n * @param {*} v1 First value to compare.\n * @param {*} v2 Second value to compare.\n * @returns {number} Negative number if v1 < v2; 0 if equal; positive otherwise.\n */\n static compare (v1, v2) {\n let n1 = Number(v1);\n let n2 = Number(v2);\n if (n1 === 0 && Cast.isWhiteSpace(v1)) {\n n1 = NaN;\n } else if (n2 === 0 && Cast.isWhiteSpace(v2)) {\n n2 = NaN;\n }\n if (isNaN(n1) || isNaN(n2)) {\n // At least one argument can't be converted to a number.\n // Scratch compares strings as case insensitive.\n const s1 = Cast.toString(v1).toLowerCase();\n const s2 = Cast.toString(v2).toLowerCase();\n if (s1 < s2) {\n return -1;\n } else if (s1 > s2) {\n return 1;\n }\n return 0;\n }\n // Handle the special case of Infinity\n if (\n (n1 === Infinity && n2 === Infinity) ||\n (n1 === -Infinity && n2 === -Infinity)\n ) {\n return 0;\n }\n // Compare as numbers.\n return n1 - n2;\n }\n\n /**\n * Determine if a Scratch argument number represents a round integer.\n * @param {*} val Value to check.\n * @return {boolean} True if number looks like an integer.\n */\n static isInt (val) {\n // Values that are already numbers.\n if (typeof val === 'number') {\n if (isNaN(val)) { // NaN is considered an integer.\n return true;\n }\n // True if it's \"round\" (e.g., 2.0 and 2).\n return val === parseInt(val, 10);\n } else if (typeof val === 'boolean') {\n // `True` and `false` always represent integer after Scratch cast.\n return true;\n } else if (typeof val === 'string') {\n // If it contains a decimal point, don't consider it an int.\n return val.indexOf('.') < 0;\n }\n return false;\n }\n\n static get LIST_INVALID () {\n return 'INVALID';\n }\n\n static get LIST_ALL () {\n return 'ALL';\n }\n\n /**\n * Compute a 1-based index into a list, based on a Scratch argument.\n * Two special cases may be returned:\n * LIST_ALL: if the block is referring to all of the items in the list.\n * LIST_INVALID: if the index was invalid in any way.\n * @param {*} index Scratch arg, including 1-based numbers or special cases.\n * @param {number} length Length of the list.\n * @param {boolean} acceptAll Whether it should accept \"all\" or not.\n * @return {(number|string)} 1-based index for list, LIST_ALL, or LIST_INVALID.\n */\n static toListIndex (index, length, acceptAll) {\n if (typeof index !== 'number') {\n if (index === 'all') {\n return acceptAll ? Cast.LIST_ALL : Cast.LIST_INVALID;\n }\n if (index === 'last') {\n if (length > 0) {\n return length;\n }\n return Cast.LIST_INVALID;\n } else if (index === 'random' || index === 'any') {\n if (length > 0) {\n return 1 + Math.floor(Math.random() * length);\n }\n return Cast.LIST_INVALID;\n }\n }\n index = Math.floor(Cast.toNumber(index));\n if (index < 1 || index > length) {\n return Cast.LIST_INVALID;\n }\n return index;\n }\n}\n\nmodule.exports = Cast;\n","function M() { this._events = {}; }\nM.prototype = {\n on: function(ev, cb) {\n this._events || (this._events = {});\n var e = this._events;\n (e[ev] || (e[ev] = [])).push(cb);\n return this;\n },\n removeListener: function(ev, cb) {\n var e = this._events[ev] || [], i;\n for(i = e.length-1; i >= 0 && e[i]; i--){\n if(e[i] === cb || e[i].cb === cb) { e.splice(i, 1); }\n }\n },\n removeAllListeners: function(ev) {\n if(!ev) { this._events = {}; }\n else { this._events[ev] && (this._events[ev] = []); }\n },\n listeners: function(ev) {\n return (this._events ? this._events[ev] || [] : []);\n },\n emit: function(ev) {\n this._events || (this._events = {});\n var args = Array.prototype.slice.call(arguments, 1), i, e = this._events[ev] || [];\n for(i = e.length-1; i >= 0 && e[i]; i--){\n e[i].apply(this, args);\n }\n return this;\n },\n when: function(ev, cb) {\n return this.once(ev, cb, true);\n },\n once: function(ev, cb, when) {\n if(!cb) return this;\n function c() {\n if(!when) this.removeListener(ev, c);\n if(cb.apply(this, arguments) && when) this.removeListener(ev, c);\n }\n c.cb = cb;\n this.on(ev, c);\n return this;\n }\n};\nM.mixin = function(dest) {\n var o = M.prototype, k;\n for (k in o) {\n o.hasOwnProperty(k) && (dest.prototype[k] = o[k]);\n }\n};\nmodule.exports = M;\n","var microee = require('microee');\n\n// Implements a subset of Node's stream.Transform - in a cross-platform manner.\nfunction Transform() {}\n\nmicroee.mixin(Transform);\n\n// The write() signature is different from Node's\n// --> makes it much easier to work with objects in logs.\n// One of the lessons from v1 was that it's better to target\n// a good browser rather than the lowest common denominator\n// internally.\n// If you want to use external streams, pipe() to ./stringify.js first.\nTransform.prototype.write = function(name, level, args) {\n this.emit('item', name, level, args);\n};\n\nTransform.prototype.end = function() {\n this.emit('end');\n this.removeAllListeners();\n};\n\nTransform.prototype.pipe = function(dest) {\n var s = this;\n // prevent double piping\n s.emit('unpipe', dest);\n // tell the dest that it's being piped to\n dest.emit('pipe', s);\n\n function onItem() {\n dest.write.apply(dest, Array.prototype.slice.call(arguments));\n }\n function onEnd() { !dest._isStdio && dest.end(); }\n\n s.on('item', onItem);\n s.on('end', onEnd);\n\n s.when('unpipe', function(from) {\n var match = (from === dest) || typeof from == 'undefined';\n if(match) {\n s.removeListener('item', onItem);\n s.removeListener('end', onEnd);\n dest.emit('unpipe');\n }\n return match;\n });\n\n return dest;\n};\n\nTransform.prototype.unpipe = function(from) {\n this.emit('unpipe', from);\n return this;\n};\n\nTransform.prototype.format = function(dest) {\n throw new Error([\n 'Warning: .format() is deprecated in Minilog v2! Use .pipe() instead. For example:',\n 'var Minilog = require(\\'minilog\\');',\n 'Minilog',\n ' .pipe(Minilog.backends.console.formatClean)',\n ' .pipe(Minilog.backends.console);'].join('\\n'));\n};\n\nTransform.mixin = function(dest) {\n var o = Transform.prototype, k;\n for (k in o) {\n o.hasOwnProperty(k) && (dest.prototype[k] = o[k]);\n }\n};\n\nmodule.exports = Transform;\n","// default filter\nvar Transform = require('./transform.js');\n\nvar levelMap = { debug: 1, info: 2, warn: 3, error: 4 };\n\nfunction Filter() {\n this.enabled = true;\n this.defaultResult = true;\n this.clear();\n}\n\nTransform.mixin(Filter);\n\n// allow all matching, with level >= given level\nFilter.prototype.allow = function(name, level) {\n this._white.push({ n: name, l: levelMap[level] });\n return this;\n};\n\n// deny all matching, with level <= given level\nFilter.prototype.deny = function(name, level) {\n this._black.push({ n: name, l: levelMap[level] });\n return this;\n};\n\nFilter.prototype.clear = function() {\n this._white = [];\n this._black = [];\n return this;\n};\n\nfunction test(rule, name) {\n // use .test for RegExps\n return (rule.n.test ? rule.n.test(name) : rule.n == name);\n};\n\nFilter.prototype.test = function(name, level) {\n var i, len = Math.max(this._white.length, this._black.length);\n for(i = 0; i < len; i++) {\n if(this._white[i] && test(this._white[i], name) && levelMap[level] >= this._white[i].l) {\n return true;\n }\n if(this._black[i] && test(this._black[i], name) && levelMap[level] <= this._black[i].l) {\n return false;\n }\n }\n return this.defaultResult;\n};\n\nFilter.prototype.write = function(name, level, args) {\n if(!this.enabled || this.test(name, level)) {\n return this.emit('item', name, level, args);\n }\n};\n\nmodule.exports = Filter;\n","var Transform = require('./transform.js'),\n Filter = require('./filter.js');\n\nvar log = new Transform(),\n slice = Array.prototype.slice;\n\nexports = module.exports = function create(name) {\n var o = function() { log.write(name, undefined, slice.call(arguments)); return o; };\n o.debug = function() { log.write(name, 'debug', slice.call(arguments)); return o; };\n o.info = function() { log.write(name, 'info', slice.call(arguments)); return o; };\n o.warn = function() { log.write(name, 'warn', slice.call(arguments)); return o; };\n o.error = function() { log.write(name, 'error', slice.call(arguments)); return o; };\n o.log = o.debug; // for interface compliance with Node and browser consoles\n o.suggest = exports.suggest;\n o.format = log.format;\n return o;\n};\n\n// filled in separately\nexports.defaultBackend = exports.defaultFormatter = null;\n\nexports.pipe = function(dest) {\n return log.pipe(dest);\n};\n\nexports.end = exports.unpipe = exports.disable = function(from) {\n return log.unpipe(from);\n};\n\nexports.Transform = Transform;\nexports.Filter = Filter;\n// this is the default filter that's applied when .enable() is called normally\n// you can bypass it completely and set up your own pipes\nexports.suggest = new Filter();\n\nexports.enable = function() {\n if(exports.defaultFormatter) {\n return log.pipe(exports.suggest) // filter\n .pipe(exports.defaultFormatter) // formatter\n .pipe(exports.defaultBackend); // backend\n }\n return log.pipe(exports.suggest) // filter\n .pipe(exports.defaultBackend); // formatter\n};\n\n","var hex = {\n black: '#000',\n red: '#c23621',\n green: '#25bc26',\n yellow: '#bbbb00',\n blue: '#492ee1',\n magenta: '#d338d3',\n cyan: '#33bbc8',\n gray: '#808080',\n purple: '#708'\n};\nfunction color(fg, isInverse) {\n if(isInverse) {\n return 'color: #fff; background: '+hex[fg]+';';\n } else {\n return 'color: '+hex[fg]+';';\n }\n}\n\nmodule.exports = color;\n","var Transform = require('../../common/transform.js'),\n color = require('./util.js');\n\nvar colors = { debug: ['cyan'], info: ['purple' ], warn: [ 'yellow', true ], error: [ 'red', true ] },\n logger = new Transform();\n\nlogger.write = function(name, level, args) {\n var fn = console.log;\n if(console[level] && console[level].apply) {\n fn = console[level];\n fn.apply(console, [ '%c'+name+' %c'+level, color('gray'), color.apply(color, colors[level])].concat(args));\n }\n};\n\n// NOP, because piping the formatted logs can only cause trouble.\nlogger.pipe = function() { };\n\nmodule.exports = logger;\n","var Transform = require('../../common/transform.js'),\n color = require('./util.js'),\n colors = { debug: ['gray'], info: ['purple' ], warn: [ 'yellow', true ], error: [ 'red', true ] },\n logger = new Transform();\n\nlogger.write = function(name, level, args) {\n var fn = console.log;\n if(level != 'debug' && console[level]) {\n fn = console[level];\n }\n\n var subset = [], i = 0;\n if(level != 'info') {\n for(; i < args.length; i++) {\n if(typeof args[i] != 'string') break;\n }\n fn.apply(console, [ '%c'+name +' '+ args.slice(0, i).join(' '), color.apply(color, colors[level]) ].concat(args.slice(i)));\n } else {\n fn.apply(console, [ '%c'+name, color.apply(color, colors[level]) ].concat(args));\n }\n};\n\n// NOP, because piping the formatted logs can only cause trouble.\nlogger.pipe = function() { };\n\nmodule.exports = logger;\n","var Transform = require('../common/transform.js');\n\nvar newlines = /\\n+$/,\n logger = new Transform();\n\nlogger.write = function(name, level, args) {\n var i = args.length-1;\n if (typeof console === 'undefined' || !console.log) {\n return;\n }\n if(console.log.apply) {\n return console.log.apply(console, [name, level].concat(args));\n } else if(JSON && JSON.stringify) {\n // console.log.apply is undefined in IE8 and IE9\n // for IE8/9: make console.log at least a bit less awful\n if(args[i] && typeof args[i] == 'string') {\n args[i] = args[i].replace(newlines, '');\n }\n try {\n for(i = 0; i < args.length; i++) {\n args[i] = JSON.stringify(args[i]);\n }\n } catch(e) {}\n console.log(args.join(' '));\n }\n};\n\nlogger.formatters = ['color', 'minilog'];\nlogger.color = require('./formatters/color.js');\nlogger.minilog = require('./formatters/minilog.js');\n\nmodule.exports = logger;\n","var Transform = require('../common/transform.js'),\n cache = [ ];\n\nvar logger = new Transform();\n\nlogger.write = function(name, level, args) {\n cache.push([ name, level, args ]);\n};\n\n// utility functions\nlogger.get = function() { return cache; };\nlogger.empty = function() { cache = []; };\n\nmodule.exports = logger;\n","var Transform = require('../common/transform.js'),\n cache = false;\n\nvar logger = new Transform();\n\nlogger.write = function(name, level, args) {\n if(typeof window == 'undefined' || typeof JSON == 'undefined' || !JSON.stringify || !JSON.parse) return;\n try {\n if(!cache) { cache = (window.localStorage.minilog ? JSON.parse(window.localStorage.minilog) : []); }\n cache.push([ new Date().toString(), name, level, args ]);\n window.localStorage.minilog = JSON.stringify(cache);\n } catch(e) {}\n};\n\nmodule.exports = logger;","var Transform = require('../common/transform.js');\n\nvar cid = new Date().valueOf().toString(36);\n\nfunction AjaxLogger(options) {\n this.url = options.url || '';\n this.cache = [];\n this.timer = null;\n this.interval = options.interval || 30*1000;\n this.enabled = true;\n this.jQuery = window.jQuery;\n this.extras = {};\n}\n\nTransform.mixin(AjaxLogger);\n\nAjaxLogger.prototype.write = function(name, level, args) {\n if(!this.timer) { this.init(); }\n this.cache.push([name, level].concat(args));\n};\n\nAjaxLogger.prototype.init = function() {\n if(!this.enabled || !this.jQuery) return;\n var self = this;\n this.timer = setTimeout(function() {\n var i, logs = [], ajaxData, url = self.url;\n if(self.cache.length == 0) return self.init();\n // Test each log line and only log the ones that are valid (e.g. don't have circular references).\n // Slight performance hit but benefit is we log all valid lines.\n for(i = 0; i < self.cache.length; i++) {\n try {\n JSON.stringify(self.cache[i]);\n logs.push(self.cache[i]);\n } catch(e) { }\n }\n if(self.jQuery.isEmptyObject(self.extras)) {\n ajaxData = JSON.stringify({ logs: logs });\n url = self.url + '?client_id=' + cid;\n } else {\n ajaxData = JSON.stringify(self.jQuery.extend({logs: logs}, self.extras));\n }\n\n self.jQuery.ajax(url, {\n type: 'POST',\n cache: false,\n processData: false,\n data: ajaxData,\n contentType: 'application/json',\n timeout: 10000\n }).success(function(data, status, jqxhr) {\n if(data.interval) {\n self.interval = Math.max(1000, data.interval);\n }\n }).error(function() {\n self.interval = 30000;\n }).always(function() {\n self.init();\n });\n self.cache = [];\n }, this.interval);\n};\n\nAjaxLogger.prototype.end = function() {};\n\n// wait until jQuery is defined. Useful if you don't control the load order.\nAjaxLogger.jQueryWait = function(onDone) {\n if(typeof window !== 'undefined' && (window.jQuery || window.$)) {\n return onDone(window.jQuery || window.$);\n } else if (typeof window !== 'undefined') {\n setTimeout(function() { AjaxLogger.jQueryWait(onDone); }, 200);\n }\n};\n\nmodule.exports = AjaxLogger;\n","var Minilog = require('../common/minilog.js');\n\nvar oldEnable = Minilog.enable,\n oldDisable = Minilog.disable,\n isChrome = (typeof navigator != 'undefined' && /chrome/i.test(navigator.userAgent)),\n console = require('./console.js');\n\n// Use a more capable logging backend if on Chrome\nMinilog.defaultBackend = (isChrome ? console.minilog : console);\n\n// apply enable inputs from localStorage and from the URL\nif(typeof window != 'undefined') {\n try {\n Minilog.enable(JSON.parse(window.localStorage['minilogSettings']));\n } catch(e) {}\n if(window.location && window.location.search) {\n var match = RegExp('[?&]minilog=([^&]*)').exec(window.location.search);\n match && Minilog.enable(decodeURIComponent(match[1]));\n }\n}\n\n// Make enable also add to localStorage\nMinilog.enable = function() {\n oldEnable.call(Minilog, true);\n try { window.localStorage['minilogSettings'] = JSON.stringify(true); } catch(e) {}\n return this;\n};\n\nMinilog.disable = function() {\n oldDisable.call(Minilog);\n try { delete window.localStorage.minilogSettings; } catch(e) {}\n return this;\n};\n\nexports = module.exports = Minilog;\n\nexports.backends = {\n array: require('./array.js'),\n browser: Minilog.defaultBackend,\n localStorage: require('./localstorage.js'),\n jQuery: require('./jquery_simple.js')\n};\n","const minilog = require('minilog');\nminilog.enable();\n\nmodule.exports = minilog('vm');\n","var img = \"data:image/png;base64,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\";\n export default img;","import BlockType from '../../extension-support/block-type';\nimport ArgumentType from '../../extension-support/argument-type';\nimport Cast from '../../util/cast';\nimport log from '../../util/log';\nimport translations from './translations.json';\nimport blockIcon from './block-icon.png';\n\n/**\n * Formatter which is used for translation.\n * This will be replaced which is used in the runtime.\n * @param {object} messageData - format-message object\n * @returns {string} - message for the locale\n */\nlet formatMessage = messageData => messageData.default;\n\n/**\n * Setup format-message for this extension.\n */\nconst setupTranslations = () => {\n const localeSetup = formatMessage.setup();\n if (localeSetup && localeSetup.translations[localeSetup.locale]) {\n Object.assign(\n localeSetup.translations[localeSetup.locale],\n translations[localeSetup.locale]\n );\n }\n};\n\nconst EXTENSION_ID = 'xcratchExample';\n\n/**\n * URL to get this extension as a module.\n * When it was loaded as a module, 'extensionURL' will be replaced a URL which is retrieved from.\n * @type {string}\n */\nlet extensionURL = 'https://yokobond.github.io/xcx-xcratchExample/dist/xcratchExample.mjs';\n\n/**\n * Scratch 3.0 blocks for example of Xcratch.\n */\nclass ExtensionBlocks {\n /**\n * A translation object which is used in this class.\n * @param {FormatObject} formatter - translation object\n */\n static set formatMessage (formatter) {\n formatMessage = formatter;\n if (formatMessage) setupTranslations();\n }\n\n /**\n * @return {string} - the name of this extension.\n */\n static get EXTENSION_NAME () {\n return formatMessage({\n id: 'xcratchExample.name',\n default: 'xcratchExample',\n description: 'name of the extension'\n });\n }\n\n /**\n * @return {string} - the ID of this extension.\n */\n static get EXTENSION_ID () {\n return EXTENSION_ID;\n }\n\n /**\n * URL to get this extension.\n * @type {string}\n */\n static get extensionURL () {\n return extensionURL;\n }\n\n /**\n * Set URL to get this extension.\n * The extensionURL will be changed to the URL of the loading server.\n * @param {string} url - URL\n */\n static set extensionURL (url) {\n extensionURL = url;\n }\n\n /**\n * Construct a set of blocks for xcratchExample.\n * @param {Runtime} runtime - the Scratch 3.0 runtime.\n */\n constructor (runtime) {\n /**\n * The Scratch 3.0 runtime.\n * @type {Runtime}\n */\n this.runtime = runtime;\n\n if (runtime.formatMessage) {\n // Replace 'formatMessage' to a formatter which is used in the runtime.\n formatMessage = runtime.formatMessage;\n }\n }\n\n /**\n * @returns {object} metadata for this extension and its blocks.\n */\n getInfo () {\n setupTranslations();\n return {\n id: ExtensionBlocks.EXTENSION_ID,\n name: ExtensionBlocks.EXTENSION_NAME,\n extensionURL: ExtensionBlocks.extensionURL,\n blockIconURI: blockIcon,\n showStatusButton: false,\n blocks: [\n {\n opcode: 'do-it',\n blockType: BlockType.REPORTER,\n blockAllThreads: false,\n text: formatMessage({\n id: 'xcratchExample.doIt',\n default: 'do it [SCRIPT]',\n description: 'execute javascript for example'\n }),\n func: 'doIt',\n arguments: {\n SCRIPT: {\n type: ArgumentType.STRING,\n defaultValue: '3 + 4'\n }\n }\n }\n ],\n menus: {\n }\n };\n }\n\n doIt (args) {\n const statement = Cast.toString(args.SCRIPT);\n const func = new Function(`return (${statement})`);\n log.log(`doIt: ${statement}`);\n return func.call(this);\n }\n}\n\nexport {ExtensionBlocks as default, ExtensionBlocks as blockClass};\n"],"names":["img","formatMessage","messageData","defaultMessage","entry","name","id","description","extensionId","extensionURL","collaborator","iconURL","insetIconURL","featured","disabled","bluetoothRequired","internetConnectionRequired","helpLink","setFormatMessage","formatter","translationMap","translations","_classCallCheck","a","n","TypeError","_typeof","o","Symbol","iterator","constructor","prototype","toPrimitive","t","r","e","i","call","String","toPropertyKey","_defineProperties","length","enumerable","configurable","writable","Object","defineProperty","key","_createClass","BlockType","BOOLEAN","BUTTON","COMMAND","CONDITIONAL","EVENT","HAT","LOOP","REPORTER","blockType","ArgumentType","ANGLE","COLOR","NUMBER","STRING","MATRIX","NOTE","IMAGE","argumentType","instance","Constructor","target","props","descriptor","protoProps","staticProps","Color","get","g","b","value","decimalToHex","decimal","hex","Number","toString","concat","substr","decimalToRgb","hexToRgb","shorthandRegex","replace","m","result","exec","parseInt","rgbToHex","rgb","rgbToDecimal","hexToDecimal","hsvToRgb","hsv","h","s","Math","max","min","v","floor","f","p","q","rgbToHsv","x","mixRgb","rgb0","rgb1","fraction1","fraction0","color","require$$0","Cast","toNumber","isNaN","fromCharCode","charCodeAt","toBoolean","toLowerCase","Boolean","toRgbColorList","toRgbColorObject","substring","isWhiteSpace","val","trim","compare","v1","v2","n1","n2","NaN","s1","s2","Infinity","isInt","indexOf","toListIndex","index","acceptAll","LIST_ALL","LIST_INVALID","random","cast","M","_events","on","ev","cb","push","removeListener","splice","removeAllListeners","listeners","emit","args","Array","slice","arguments","apply","when","once","c","mixin","dest","k","hasOwnProperty","microee","Transform","write","level","end","pipe","onItem","onEnd","_isStdio","from","match","unpipe","format","Error","join","transform","levelMap","debug","info","warn","error","Filter","enabled","defaultResult","clear","allow","_white","l","deny","_black","test","rule","len","filter","require$$1","log","exports","module","create","undefined","suggest","defaultBackend","defaultFormatter","disable","enable","black","red","green","yellow","blue","magenta","cyan","gray","purple","fg","isInverse","util","colors","logger","fn","console","color_1","subset","minilog","newlines","JSON","stringify","formatters","require$$2","console_1","cache","empty","array","window","parse","localStorage","Date","localstorage","cid","valueOf","AjaxLogger","options","url","timer","interval","jQuery","extras","init","self","setTimeout","logs","ajaxData","isEmptyObject","extend","ajax","type","processData","data","contentType","timeout","success","status","jqxhr","always","jQueryWait","onDone","$","jquery_simple","Minilog","oldEnable","oldDisable","isChrome","navigator","userAgent","location","search","RegExp","decodeURIComponent","minilogSettings","backends","browser","require$$3","require$$4","default","setupTranslations","localeSetup","setup","locale","assign","EXTENSION_ID","ExtensionBlocks","runtime","getInfo","EXTENSION_NAME","blockIconURI","blockIcon","showStatusButton","blocks","opcode","blockAllThreads","text","func","SCRIPT","defaultValue","menus","doIt","statement","Function","set"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,10,11,12,13,14,17,18,19,20,21,22,23,24,25,26,27,28]}