sb-edit-custom 0.20.129 → 0.20.130

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.
@@ -11,7 +11,7 @@ export declare const GAME_STAGE_JS = "\nimport { Stage as StageBase, Trigger, Wa
11
11
  export declare const WRAP_SPRITE_CLASS_JS = "\nimport { GameSprite } from \"./GameSprite.js\"\nimport { copyPrototypeToInstance, setConstructingTarget, clearConstructingTarget } from \"./helpers.js\"\n\nexport function wrapSpriteClass(UserClass) {\n if (UserClass.prototype?.hasOwnProperty(\"constructor\")) {\n const userCtor = UserClass.prototype.constructor\n if (userCtor && userCtor !== UserClass) {\n throw new Error(`${UserClass.name}: Please use init() instead of constructor()`)\n }\n }\n\n var spriteId = UserClass.name;\n\n return class WrappedSprite extends GameSprite {\n constructor(...args) {\n var opts = args[0] ?? {}\n args[0] = { ...opts, spriteId: spriteId }\n super(...args)\n\n copyPrototypeToInstance(this, UserClass.prototype)\n\n setConstructingTarget(this)\n try {\n if (typeof this.init === \"function\") this.init()\n } finally {\n clearConstructingTarget()\n }\n\n this._finalizeTriggers()\n }\n }\n}\n";
12
12
  export declare const WRAP_STAGE_CLASS_JS = "\nimport { GameStage } from \"./GameStage.js\"\nimport { copyPrototypeToInstance, setConstructingTarget, clearConstructingTarget } from \"./helpers.js\"\n\nexport function wrapStageClass(UserClass) {\n return class WrappedStage extends GameStage {\n constructor(...args) {\n super(...args)\n\n copyPrototypeToInstance(this, UserClass.prototype)\n\n setConstructingTarget(this)\n try {\n if (typeof this.init === \"function\") this.init(...args)\n } finally {\n clearConstructingTarget()\n }\n\n this._finalizeTriggers()\n }\n }\n}\n";
13
13
  export declare const getUserApiJS: (_leopardJSURL?: string) => string;
14
- export declare const SPRITE_FUNCS_JS = "\n// spriteFuncs.js - Free functions that delegate to the current sprite\n// These allow cleaner code: wait(1) instead of this.wait(1)\n// Works both during init() (via constructing target) and at runtime (via context.target)\n\nimport { context } from \"./userApi.js\";\nimport { getConstructingTarget } from \"./helpers.js\";\n\nfunction self() {\n return getConstructingTarget() || context.target;\n}\n\n// Control\nexport function wait(seconds) {\n return self().wait(seconds);\n}\n\nexport function broadcast(message) {\n return self().broadcast(message);\n}\n\nexport function broadcastAndWait(message) {\n return self().broadcastAndWait(message);\n}\n\nexport function createClone() {\n self().createClone();\n}\n\nexport function deleteThisClone() {\n self().deleteThisClone();\n}\n\nexport function stop(option) {\n self().stop(option);\n}\n\nexport function stopAllSounds() {\n self().stopAllSounds();\n}\n\n// Looks\nexport function say(message) {\n self().say(message);\n}\n\nexport function sayAndWait(message, seconds) {\n return self().sayAndWait(message, seconds);\n}\n\nexport function think(message) {\n self().think(message);\n}\n\nexport function thinkAndWait(message, seconds) {\n return self().thinkAndWait(message, seconds);\n}\n\n// Motion\nexport function move(steps) {\n self().move(steps);\n}\n\nexport function goto(x, y) {\n self().goto(x, y);\n}\n\nexport function glide(seconds, x, y) {\n return self().glide(seconds, x, y);\n}\n\nexport function setDirection(direction) {\n self().direction = direction;\n}\n\nexport function changeDirection(amount) {\n self().direction += amount;\n}\n\nexport function turnClockwise(degrees) {\n self().direction += degrees;\n}\n\nexport function turnCounterClockwise(degrees) {\n self().direction -= degrees;\n}\n\nexport function pointTowards(target) {\n var s = self();\n var x, y;\n if (typeof target === \"string\" && target === \"mouse\") {\n x = s.mouse.x;\n y = s.mouse.y;\n } else {\n x = target.x;\n y = target.y;\n }\n s.direction = s.radToScratch(Math.atan2(y - s.y, x - s.x));\n}\n\nexport function changeX(amount) {\n self().x += amount;\n}\n\nexport function setX(x) {\n self().x = x;\n}\n\nexport function changeY(amount) {\n self().y += amount;\n}\n\nexport function setY(y) {\n self().y = y;\n}\n\nexport function ifOnEdgeBounce() {\n self().ifOnEdgeBounce();\n}\n\n// Pen\nexport function stamp() {\n self().stamp();\n}\n\nexport function penDown() {\n self().penDown = true;\n}\n\nexport function penUp() {\n self().penDown = false;\n}\n\nexport function setPenColor(color) {\n self().penColor = color;\n}\n\nexport function setPenSize(size) {\n self().penSize = size;\n}\n\nexport function changePenSize(amount) {\n self().penSize += amount;\n}\n\nexport function clearPen() {\n self().clearPen();\n}\n\n// Sound\nexport function playSoundUntilDone(sound) {\n return self().playSoundUntilDone(sound);\n}\n\nexport function startSound(sound) {\n return self().startSound(sound);\n}\n\n// Sensing\nexport function touching(target) {\n return self().touching(target);\n}\n\nexport function colorTouching(color, target) {\n return self().colorTouching(color, target);\n}\n\nexport function keyPressed(key) {\n return self().keyPressed(key);\n}\n\nexport function isMouseDown() {\n return self().mouse.down;\n}\n\nexport function getMouseX() {\n return self().mouse.x;\n}\n\nexport function getMouseY() {\n return self().mouse.y;\n}\n\nexport function askAndWait(question) {\n return self().askAndWait(question);\n}\n\nexport function getAnswer() {\n return self().answer;\n}\n\nexport function getTimer() {\n return self().timer;\n}\n\nexport function restartTimer() {\n self().restartTimer();\n}\n\n// Visibility\nexport function show() {\n self().visible = true;\n}\n\nexport function hide() {\n self().visible = false;\n}\n\n// Size\nexport function setSize(percent) {\n self().size = percent;\n}\n\nexport function changeSize(amount) {\n self().size += amount;\n}\n\n// Effects\nexport function setEffect(effect, value) {\n self().effects[effect] = value;\n}\n\nexport function changeEffect(effect, amount) {\n self().effects[effect] += amount;\n}\n\nexport function clearEffects() {\n self().effects.clear();\n}\n\n// Costume\nexport function setCostume(costume) {\n self().costume = costume;\n}\n\nexport function nextCostume() {\n self().costumeNumber++;\n}\n\n// Layer\nexport function moveToFront() {\n self().moveAhead();\n}\n\nexport function moveToBack() {\n self().moveBehind();\n}\n\nexport function moveForward(layers = 1) {\n self().moveAhead(layers);\n}\n\nexport function moveBackward(layers = 1) {\n self().moveBehind(layers);\n}\n\n// Rotation style\nexport function setRotationStyle(style) {\n self().rotationStyle = style;\n}\n\n// Variables / Watchers\nexport function createVar(name, initialValue, options) {\n self().createVar(name, initialValue, options);\n}\n\nexport function setVar(name, value) {\n self().setVar(name, value);\n}\n\nexport function showVar(name) {\n self().showVar(name);\n}\n\nexport function hideVar(name) {\n self().hideVar(name);\n}\n\nexport function moveVar(name, x, y) {\n self().moveVar(name, x, y);\n}\n\n// Event handlers\nexport function whenGreenFlag(method) {\n self().whenGreenFlag(method);\n}\n\nexport function whenKeyPressed(keyOrOptions, method) {\n self().whenKeyPressed(keyOrOptions, method);\n}\n\nexport function whenBroadcast(nameOrOptions, method) {\n self().whenBroadcast(nameOrOptions, method);\n}\n\nexport function whenClicked(method) {\n self().whenClicked(method);\n}\n\nexport function whenTouchStart(method) {\n self().whenTouchStart(method);\n}\n\nexport function whenTouchEnd(method) {\n self().whenTouchEnd(method);\n}\n\nexport function whenTouchMove(method) {\n self().whenTouchMove(method);\n}\n\nexport function whenCloneStart(method) {\n self().whenCloneStart(method);\n}\n\nexport function whenBackdropChanged(method) {\n self().whenBackdropChanged(method);\n}\n\n// Sound (additional)\nexport function stopAllOfMySounds() {\n self().stopAllOfMySounds();\n}\n\nexport function getSound(soundName) {\n return self().getSound(soundName);\n}\n\n// Motion (additional getters/setters)\nexport function getX() {\n return self().x;\n}\n\nexport function getY() {\n return self().y;\n}\n\nexport function getDirection() {\n return self().direction;\n}\n\nexport function positionInFence() {\n self().positionInFence();\n}\n\nexport function moveAhead(value) {\n self().moveAhead(value);\n}\n\nexport function moveBehind(value) {\n self().moveBehind(value);\n}\n\n// Looks (additional getters)\nexport function getCostumeNumber() {\n return self().costumeNumber;\n}\n\nexport function setCostumeNumber(number) {\n self().costumeNumber = number;\n}\n\nexport function prevCostume() {\n self().costumeNumber--;\n}\n\nexport function getCostume() {\n return self().costume;\n}\n\nexport function getCostumes() {\n return self().costumes.map(c => c.name);\n}\n\nexport function getSize() {\n return self().size;\n}\n\nexport function getVisible() {\n return self().visible;\n}\n\n// Sensing (additional)\nexport function getLoudness() {\n return self().loudness;\n}\n\nexport function nearestEdge() {\n return self().nearestEdge();\n}\n\nexport function getStage() {\n return self().stage;\n}\n\nexport function getSprites() {\n return self().sprites;\n}\n\n// Pen (additional getters)\nexport function getPenDown() {\n return self().penDown;\n}\n\nexport function getPenColor() {\n return self().penColor;\n}\n\nexport function getPenSize() {\n return self().penSize;\n}\n\n// Clone\nexport function andClones() {\n return self().andClones();\n}\n\n// Math utilities\nexport function degToRad(deg) {\n return self().degToRad(deg);\n}\n\nexport function radToDeg(rad) {\n return self().radToDeg(rad);\n}\n\nexport function degToScratch(deg) {\n return self().degToScratch(deg);\n}\n\nexport function scratchToDeg(scratchDir) {\n return self().scratchToDeg(scratchDir);\n}\n\nexport function radToScratch(rad) {\n return self().radToScratch(rad);\n}\n\nexport function scratchToRad(scratchDir) {\n return self().scratchToRad(scratchDir);\n}\n\nexport function scratchTan(angle) {\n return self().scratchTan(angle);\n}\n\nexport function normalizeDeg(deg) {\n return self().normalizeDeg(deg);\n}\n\nexport function wrapClamp(n, min, max) {\n return self().wrapClamp(n, min, max);\n}\n\nexport function random(a, b) {\n return self().random(a, b);\n}\n\n// Type conversion\nexport function toNumber(value) {\n return self().toNumber(value);\n}\n\nexport function toBoolean(value) {\n return self().toBoolean(value);\n}\n\nexport function toStr(value) {\n return self().toString(value);\n}\n\n// String / Array utilities\nexport function stringIncludes(string, substring) {\n return self().stringIncludes(string, substring);\n}\n\nexport function arrayIncludes(array, value) {\n return self().arrayIncludes(array, value);\n}\n\nexport function letterOf(string, index) {\n return self().letterOf(string, index);\n}\n\nexport function itemOf(array, index) {\n return self().itemOf(array, index);\n}\n\nexport function indexInArray(array, value) {\n return self().indexInArray(array, value);\n}\n\nexport function compare(v1, v2) {\n return self().compare(v1, v2);\n}\n\n// Control (additional)\nexport function warp(procedure) {\n return self().warp(procedure);\n}\n\n// Loop helpers\nexport function repeat(times, body) {\n for (var i = 0; i < times; i++) {\n body();\n }\n}\n\nexport function forever(body) {\n while (true) {\n body();\n }\n}\n\nexport function untilLoop(condition, body) {\n while (!condition()) {\n body();\n }\n}\n\n// Color utilities\nexport function rgb(r, g, b) {\n return Color.rgb(r, g, b);\n}\n\nexport function hex(hex) {\n return Color.hex(hex);\n}\n\nexport function colorNumToRgb(num) {\n return Color.num(num);\n}\n\nfunction hexToRGB(hex) { return Color.hexToRGB(hex); }\nfunction hexToHSL(hex) { return Color.hexToHSL(hex); }\nfunction rgbToHex(r, g, b) { return Color.rgbToHex(r, g, b); }\nfunction rgbToHSL(r, g, b) { return Color.rgbToHSL(r, g, b); }\nfunction hslToRGB(h, s, l) { return Color.hslToRGB(h, s, l); }\nfunction hslToHex(h, s, l) { return Color.hslToHex(h, s, l); }\n";
14
+ export declare const SPRITE_FUNCS_JS = "\n// spriteFuncs.js - Free functions that delegate to the current sprite\n// These allow cleaner code: wait(1) instead of this.wait(1)\n// Works both during init() (via constructing target) and at runtime (via context.target)\n\nimport { context } from \"./userApi.js\";\nimport { getConstructingTarget } from \"./helpers.js\";\n\nfunction self() {\n return getConstructingTarget() || context.target;\n}\n\n// Control\nexport function wait(seconds) {\n return self().wait(seconds);\n}\n\nexport function broadcast(message) {\n return self().broadcast(message);\n}\n\nexport function broadcastAndWait(message) {\n return self().broadcastAndWait(message);\n}\n\nexport function createClone() {\n self().createClone();\n}\n\nexport function deleteThisClone() {\n self().deleteThisClone();\n}\n\nexport function stop(option) {\n self().stop(option);\n}\n\nexport function stopAllSounds() {\n self().stopAllSounds();\n}\n\n// Looks\nexport function say(message) {\n self().say(message);\n}\n\nexport function sayAndWait(message, seconds) {\n return self().sayAndWait(message, seconds);\n}\n\nexport function think(message) {\n self().think(message);\n}\n\nexport function thinkAndWait(message, seconds) {\n return self().thinkAndWait(message, seconds);\n}\n\n// Motion\nexport function move(steps) {\n self().move(steps);\n}\n\nexport function goto(x, y) {\n self().goto(x, y);\n}\n\nexport function glide(seconds, x, y) {\n return self().glide(seconds, x, y);\n}\n\nexport function setDirection(direction) {\n self().direction = direction;\n}\n\nexport function changeDirection(amount) {\n self().direction += amount;\n}\n\nexport function turnClockwise(degrees) {\n self().direction += degrees;\n}\n\nexport function turnCounterClockwise(degrees) {\n self().direction -= degrees;\n}\n\nexport function pointTowards(target) {\n var s = self();\n var x, y;\n if (typeof target === \"string\" && target === \"mouse\") {\n x = s.mouse.x;\n y = s.mouse.y;\n } else {\n x = target.x;\n y = target.y;\n }\n s.direction = s.radToScratch(Math.atan2(y - s.y, x - s.x));\n}\n\nexport function changeX(amount) {\n self().x += amount;\n}\n\nexport function setX(x) {\n self().x = x;\n}\n\nexport function changeY(amount) {\n self().y += amount;\n}\n\nexport function setY(y) {\n self().y = y;\n}\n\nexport function ifOnEdgeBounce() {\n self().ifOnEdgeBounce();\n}\n\n// Pen\nexport function stamp() {\n self().stamp();\n}\n\nexport function penDown() {\n self().penDown = true;\n}\n\nexport function penUp() {\n self().penDown = false;\n}\n\nexport function setPenColor(color) {\n self().penColor = color;\n}\n\nexport function setPenSize(size) {\n self().penSize = size;\n}\n\nexport function changePenSize(amount) {\n self().penSize += amount;\n}\n\nexport function clearPen() {\n self().clearPen();\n}\n\n// Sound\nexport function playSoundUntilDone(sound) {\n return self().playSoundUntilDone(sound);\n}\n\nexport function startSound(sound) {\n return self().startSound(sound);\n}\n\n// Sensing\nexport function touching(target) {\n return self().touching(target);\n}\n\nexport function colorTouching(color, target) {\n return self().colorTouching(color, target);\n}\n\nexport function keyPressed(key) {\n return self().keyPressed(key);\n}\n\nexport function isMouseDown() {\n return self().mouse.down;\n}\n\nexport function getMouseX() {\n return self().mouse.x;\n}\n\nexport function getMouseY() {\n return self().mouse.y;\n}\n\nexport function askAndWait(question) {\n return self().askAndWait(question);\n}\n\nexport function getAnswer() {\n return self().answer;\n}\n\nexport function getTimer() {\n return self().timer;\n}\n\nexport function restartTimer() {\n self().restartTimer();\n}\n\n// Visibility\nexport function show() {\n self().visible = true;\n}\n\nexport function hide() {\n self().visible = false;\n}\n\n// Size\nexport function setSize(percent) {\n self().size = percent;\n}\n\nexport function changeSize(amount) {\n self().size += amount;\n}\n\n// Effects\nexport function setEffect(effect, value) {\n self().effects[effect] = value;\n}\n\nexport function changeEffect(effect, amount) {\n self().effects[effect] += amount;\n}\n\nexport function clearEffects() {\n self().effects.clear();\n}\n\n// Costume\nexport function setCostume(costume) {\n self().costume = costume;\n}\n\nexport function nextCostume() {\n self().costumeNumber++;\n}\n\n// Layer\nexport function moveToFront() {\n self().moveAhead();\n}\n\nexport function moveToBack() {\n self().moveBehind();\n}\n\nexport function moveForward(layers = 1) {\n self().moveAhead(layers);\n}\n\nexport function moveBackward(layers = 1) {\n self().moveBehind(layers);\n}\n\n// Rotation style\nexport function setRotationStyle(style) {\n self().rotationStyle = style;\n}\n\n// Variables / Watchers\nexport function createVar(name, initialValue, options) {\n self().createVar(name, initialValue, options);\n}\n\nexport function setVar(name, value) {\n self().setVar(name, value);\n}\n\nexport function showVar(name) {\n self().showVar(name);\n}\n\nexport function hideVar(name) {\n self().hideVar(name);\n}\n\nexport function moveVar(name, x, y) {\n self().moveVar(name, x, y);\n}\n\n// Event handlers\nexport function whenGreenFlag(method) {\n self().whenGreenFlag(method);\n}\n\nexport function whenKeyPressed(keyOrOptions, method) {\n self().whenKeyPressed(keyOrOptions, method);\n}\n\nexport function whenBroadcast(nameOrOptions, method) {\n self().whenBroadcast(nameOrOptions, method);\n}\n\nexport function whenClicked(method) {\n self().whenClicked(method);\n}\n\nexport function whenTouchStart(method) {\n self().whenTouchStart(method);\n}\n\nexport function whenTouchEnd(method) {\n self().whenTouchEnd(method);\n}\n\nexport function whenTouchMove(method) {\n self().whenTouchMove(method);\n}\n\nexport function whenCloneStart(method) {\n self().whenCloneStart(method);\n}\n\nexport function whenBackdropChanged(method) {\n self().whenBackdropChanged(method);\n}\n\n// Sound (additional)\nexport function stopAllOfMySounds() {\n self().stopAllOfMySounds();\n}\n\nexport function getSound(soundName) {\n return self().getSound(soundName);\n}\n\n// Motion (additional getters/setters)\nexport function getX() {\n return self().x;\n}\n\nexport function getY() {\n return self().y;\n}\n\nexport function getDirection() {\n return self().direction;\n}\n\nexport function positionInFence() {\n self().positionInFence();\n}\n\nexport function moveAhead(value) {\n self().moveAhead(value);\n}\n\nexport function moveBehind(value) {\n self().moveBehind(value);\n}\n\n// Looks (additional getters)\nexport function getCostumeNumber() {\n return self().costumeNumber;\n}\n\nexport function setCostumeNumber(number) {\n self().costumeNumber = number;\n}\n\nexport function prevCostume() {\n self().costumeNumber--;\n}\n\nexport function getCostume() {\n return self().costume.name;\n}\n\nexport function getCostumes() {\n return self().costumes.map(c => c.name);\n}\n\nexport function getSize() {\n return self().size;\n}\n\nexport function getVisible() {\n return self().visible;\n}\n\n// Sensing (additional)\nexport function getLoudness() {\n return self().loudness;\n}\n\nexport function nearestEdge() {\n return self().nearestEdge();\n}\n\nexport function getStage() {\n return self().stage;\n}\n\nexport function getSprites() {\n return self().sprites;\n}\n\n// Pen (additional getters)\nexport function getPenDown() {\n return self().penDown;\n}\n\nexport function getPenColor() {\n return self().penColor;\n}\n\nexport function getPenSize() {\n return self().penSize;\n}\n\n// Clone\nexport function andClones() {\n return self().andClones();\n}\n\n// Math utilities\nexport function degToRad(deg) {\n return self().degToRad(deg);\n}\n\nexport function radToDeg(rad) {\n return self().radToDeg(rad);\n}\n\nexport function degToScratch(deg) {\n return self().degToScratch(deg);\n}\n\nexport function scratchToDeg(scratchDir) {\n return self().scratchToDeg(scratchDir);\n}\n\nexport function radToScratch(rad) {\n return self().radToScratch(rad);\n}\n\nexport function scratchToRad(scratchDir) {\n return self().scratchToRad(scratchDir);\n}\n\nexport function scratchTan(angle) {\n return self().scratchTan(angle);\n}\n\nexport function normalizeDeg(deg) {\n return self().normalizeDeg(deg);\n}\n\nexport function wrapClamp(n, min, max) {\n return self().wrapClamp(n, min, max);\n}\n\nexport function random(a, b) {\n return self().random(a, b);\n}\n\n// Type conversion\nexport function toNumber(value) {\n return self().toNumber(value);\n}\n\nexport function toBoolean(value) {\n return self().toBoolean(value);\n}\n\nexport function toStr(value) {\n return self().toString(value);\n}\n\n// String / Array utilities\nexport function stringIncludes(string, substring) {\n return self().stringIncludes(string, substring);\n}\n\nexport function arrayIncludes(array, value) {\n return self().arrayIncludes(array, value);\n}\n\nexport function letterOf(string, index) {\n return self().letterOf(string, index);\n}\n\nexport function itemOf(array, index) {\n return self().itemOf(array, index);\n}\n\nexport function indexInArray(array, value) {\n return self().indexInArray(array, value);\n}\n\nexport function compare(v1, v2) {\n return self().compare(v1, v2);\n}\n\n// Control (additional)\nexport function warp(procedure) {\n return self().warp(procedure);\n}\n\n// Loop helpers\nexport function repeat(times, body) {\n for (var i = 0; i < times; i++) {\n body();\n }\n}\n\nexport function forever(body) {\n while (true) {\n body();\n }\n}\n\nexport function untilLoop(condition, body) {\n while (!condition()) {\n body();\n }\n}\n\n// Color utilities\nexport function rgb(r, g, b) {\n return Color.rgb(r, g, b);\n}\n\nexport function hex(hex) {\n return Color.hex(hex);\n}\n\nexport function colorNumToRgb(num) {\n return Color.num(num);\n}\n\nfunction hexToRGB(hex) { return Color.hexToRGB(hex); }\nfunction hexToHSL(hex) { return Color.hexToHSL(hex); }\nfunction rgbToHex(r, g, b) { return Color.rgbToHex(r, g, b); }\nfunction rgbToHSL(r, g, b) { return Color.rgbToHSL(r, g, b); }\nfunction hslToRGB(h, s, l) { return Color.hslToRGB(h, s, l); }\nfunction hslToHex(h, s, l) { return Color.hslToHex(h, s, l); }\n";
15
15
  export declare const REGISTRATION_RUNTIME_JS = "\n// registrationRuntime.js\n// Stores \"which sprite class is currently being registered\" during module evaluation.\nconst REG = {\n currentSpriteClass: null,\n};\nexport function enterSpriteRegistration(spriteClass) {\n REG.currentSpriteClass = spriteClass;\n}\nexport function exitSpriteRegistration() {\n REG.currentSpriteClass = null;\n}\nexport function getCurrentSpriteClass() {\n const Cls = REG.currentSpriteClass;\n if (!Cls) {\n throw new Error(\n \"Sprite registration API called outside sprite module evaluation. \" +\n \"Make sure index.js calls enterSpriteRegistration(Class) before importing the sprite user module.\"\n );\n }\n return Cls;\n}\n";
16
16
  export declare const getInfrastructureFiles: (options?: InfrastructureOptions) => {
17
17
  "userApi.js": string;
@@ -13,7 +13,7 @@ exports.WRAP_SPRITE_CLASS_JS = "\nimport { GameSprite } from \"./GameSprite.js\"
13
13
  exports.WRAP_STAGE_CLASS_JS = "\nimport { GameStage } from \"./GameStage.js\"\nimport { copyPrototypeToInstance, setConstructingTarget, clearConstructingTarget } from \"./helpers.js\"\n\nexport function wrapStageClass(UserClass) {\n return class WrappedStage extends GameStage {\n constructor(...args) {\n super(...args)\n\n copyPrototypeToInstance(this, UserClass.prototype)\n\n setConstructingTarget(this)\n try {\n if (typeof this.init === \"function\") this.init(...args)\n } finally {\n clearConstructingTarget()\n }\n\n this._finalizeTriggers()\n }\n }\n}\n";
14
14
  var getUserApiJS = function (_leopardJSURL) { return "\n// userApi.js - Leopard class re-exports for sprite files\n// In bundled mode, this file is empty - Leopard classes come from window globals.\n// In ES module mode, sprite files import directly from the Leopard library URL.\n"; };
15
15
  exports.getUserApiJS = getUserApiJS;
16
- exports.SPRITE_FUNCS_JS = "\n// spriteFuncs.js - Free functions that delegate to the current sprite\n// These allow cleaner code: wait(1) instead of this.wait(1)\n// Works both during init() (via constructing target) and at runtime (via context.target)\n\nimport { context } from \"./userApi.js\";\nimport { getConstructingTarget } from \"./helpers.js\";\n\nfunction self() {\n return getConstructingTarget() || context.target;\n}\n\n// Control\nexport function wait(seconds) {\n return self().wait(seconds);\n}\n\nexport function broadcast(message) {\n return self().broadcast(message);\n}\n\nexport function broadcastAndWait(message) {\n return self().broadcastAndWait(message);\n}\n\nexport function createClone() {\n self().createClone();\n}\n\nexport function deleteThisClone() {\n self().deleteThisClone();\n}\n\nexport function stop(option) {\n self().stop(option);\n}\n\nexport function stopAllSounds() {\n self().stopAllSounds();\n}\n\n// Looks\nexport function say(message) {\n self().say(message);\n}\n\nexport function sayAndWait(message, seconds) {\n return self().sayAndWait(message, seconds);\n}\n\nexport function think(message) {\n self().think(message);\n}\n\nexport function thinkAndWait(message, seconds) {\n return self().thinkAndWait(message, seconds);\n}\n\n// Motion\nexport function move(steps) {\n self().move(steps);\n}\n\nexport function goto(x, y) {\n self().goto(x, y);\n}\n\nexport function glide(seconds, x, y) {\n return self().glide(seconds, x, y);\n}\n\nexport function setDirection(direction) {\n self().direction = direction;\n}\n\nexport function changeDirection(amount) {\n self().direction += amount;\n}\n\nexport function turnClockwise(degrees) {\n self().direction += degrees;\n}\n\nexport function turnCounterClockwise(degrees) {\n self().direction -= degrees;\n}\n\nexport function pointTowards(target) {\n var s = self();\n var x, y;\n if (typeof target === \"string\" && target === \"mouse\") {\n x = s.mouse.x;\n y = s.mouse.y;\n } else {\n x = target.x;\n y = target.y;\n }\n s.direction = s.radToScratch(Math.atan2(y - s.y, x - s.x));\n}\n\nexport function changeX(amount) {\n self().x += amount;\n}\n\nexport function setX(x) {\n self().x = x;\n}\n\nexport function changeY(amount) {\n self().y += amount;\n}\n\nexport function setY(y) {\n self().y = y;\n}\n\nexport function ifOnEdgeBounce() {\n self().ifOnEdgeBounce();\n}\n\n// Pen\nexport function stamp() {\n self().stamp();\n}\n\nexport function penDown() {\n self().penDown = true;\n}\n\nexport function penUp() {\n self().penDown = false;\n}\n\nexport function setPenColor(color) {\n self().penColor = color;\n}\n\nexport function setPenSize(size) {\n self().penSize = size;\n}\n\nexport function changePenSize(amount) {\n self().penSize += amount;\n}\n\nexport function clearPen() {\n self().clearPen();\n}\n\n// Sound\nexport function playSoundUntilDone(sound) {\n return self().playSoundUntilDone(sound);\n}\n\nexport function startSound(sound) {\n return self().startSound(sound);\n}\n\n// Sensing\nexport function touching(target) {\n return self().touching(target);\n}\n\nexport function colorTouching(color, target) {\n return self().colorTouching(color, target);\n}\n\nexport function keyPressed(key) {\n return self().keyPressed(key);\n}\n\nexport function isMouseDown() {\n return self().mouse.down;\n}\n\nexport function getMouseX() {\n return self().mouse.x;\n}\n\nexport function getMouseY() {\n return self().mouse.y;\n}\n\nexport function askAndWait(question) {\n return self().askAndWait(question);\n}\n\nexport function getAnswer() {\n return self().answer;\n}\n\nexport function getTimer() {\n return self().timer;\n}\n\nexport function restartTimer() {\n self().restartTimer();\n}\n\n// Visibility\nexport function show() {\n self().visible = true;\n}\n\nexport function hide() {\n self().visible = false;\n}\n\n// Size\nexport function setSize(percent) {\n self().size = percent;\n}\n\nexport function changeSize(amount) {\n self().size += amount;\n}\n\n// Effects\nexport function setEffect(effect, value) {\n self().effects[effect] = value;\n}\n\nexport function changeEffect(effect, amount) {\n self().effects[effect] += amount;\n}\n\nexport function clearEffects() {\n self().effects.clear();\n}\n\n// Costume\nexport function setCostume(costume) {\n self().costume = costume;\n}\n\nexport function nextCostume() {\n self().costumeNumber++;\n}\n\n// Layer\nexport function moveToFront() {\n self().moveAhead();\n}\n\nexport function moveToBack() {\n self().moveBehind();\n}\n\nexport function moveForward(layers = 1) {\n self().moveAhead(layers);\n}\n\nexport function moveBackward(layers = 1) {\n self().moveBehind(layers);\n}\n\n// Rotation style\nexport function setRotationStyle(style) {\n self().rotationStyle = style;\n}\n\n// Variables / Watchers\nexport function createVar(name, initialValue, options) {\n self().createVar(name, initialValue, options);\n}\n\nexport function setVar(name, value) {\n self().setVar(name, value);\n}\n\nexport function showVar(name) {\n self().showVar(name);\n}\n\nexport function hideVar(name) {\n self().hideVar(name);\n}\n\nexport function moveVar(name, x, y) {\n self().moveVar(name, x, y);\n}\n\n// Event handlers\nexport function whenGreenFlag(method) {\n self().whenGreenFlag(method);\n}\n\nexport function whenKeyPressed(keyOrOptions, method) {\n self().whenKeyPressed(keyOrOptions, method);\n}\n\nexport function whenBroadcast(nameOrOptions, method) {\n self().whenBroadcast(nameOrOptions, method);\n}\n\nexport function whenClicked(method) {\n self().whenClicked(method);\n}\n\nexport function whenTouchStart(method) {\n self().whenTouchStart(method);\n}\n\nexport function whenTouchEnd(method) {\n self().whenTouchEnd(method);\n}\n\nexport function whenTouchMove(method) {\n self().whenTouchMove(method);\n}\n\nexport function whenCloneStart(method) {\n self().whenCloneStart(method);\n}\n\nexport function whenBackdropChanged(method) {\n self().whenBackdropChanged(method);\n}\n\n// Sound (additional)\nexport function stopAllOfMySounds() {\n self().stopAllOfMySounds();\n}\n\nexport function getSound(soundName) {\n return self().getSound(soundName);\n}\n\n// Motion (additional getters/setters)\nexport function getX() {\n return self().x;\n}\n\nexport function getY() {\n return self().y;\n}\n\nexport function getDirection() {\n return self().direction;\n}\n\nexport function positionInFence() {\n self().positionInFence();\n}\n\nexport function moveAhead(value) {\n self().moveAhead(value);\n}\n\nexport function moveBehind(value) {\n self().moveBehind(value);\n}\n\n// Looks (additional getters)\nexport function getCostumeNumber() {\n return self().costumeNumber;\n}\n\nexport function setCostumeNumber(number) {\n self().costumeNumber = number;\n}\n\nexport function prevCostume() {\n self().costumeNumber--;\n}\n\nexport function getCostume() {\n return self().costume;\n}\n\nexport function getCostumes() {\n return self().costumes.map(c => c.name);\n}\n\nexport function getSize() {\n return self().size;\n}\n\nexport function getVisible() {\n return self().visible;\n}\n\n// Sensing (additional)\nexport function getLoudness() {\n return self().loudness;\n}\n\nexport function nearestEdge() {\n return self().nearestEdge();\n}\n\nexport function getStage() {\n return self().stage;\n}\n\nexport function getSprites() {\n return self().sprites;\n}\n\n// Pen (additional getters)\nexport function getPenDown() {\n return self().penDown;\n}\n\nexport function getPenColor() {\n return self().penColor;\n}\n\nexport function getPenSize() {\n return self().penSize;\n}\n\n// Clone\nexport function andClones() {\n return self().andClones();\n}\n\n// Math utilities\nexport function degToRad(deg) {\n return self().degToRad(deg);\n}\n\nexport function radToDeg(rad) {\n return self().radToDeg(rad);\n}\n\nexport function degToScratch(deg) {\n return self().degToScratch(deg);\n}\n\nexport function scratchToDeg(scratchDir) {\n return self().scratchToDeg(scratchDir);\n}\n\nexport function radToScratch(rad) {\n return self().radToScratch(rad);\n}\n\nexport function scratchToRad(scratchDir) {\n return self().scratchToRad(scratchDir);\n}\n\nexport function scratchTan(angle) {\n return self().scratchTan(angle);\n}\n\nexport function normalizeDeg(deg) {\n return self().normalizeDeg(deg);\n}\n\nexport function wrapClamp(n, min, max) {\n return self().wrapClamp(n, min, max);\n}\n\nexport function random(a, b) {\n return self().random(a, b);\n}\n\n// Type conversion\nexport function toNumber(value) {\n return self().toNumber(value);\n}\n\nexport function toBoolean(value) {\n return self().toBoolean(value);\n}\n\nexport function toStr(value) {\n return self().toString(value);\n}\n\n// String / Array utilities\nexport function stringIncludes(string, substring) {\n return self().stringIncludes(string, substring);\n}\n\nexport function arrayIncludes(array, value) {\n return self().arrayIncludes(array, value);\n}\n\nexport function letterOf(string, index) {\n return self().letterOf(string, index);\n}\n\nexport function itemOf(array, index) {\n return self().itemOf(array, index);\n}\n\nexport function indexInArray(array, value) {\n return self().indexInArray(array, value);\n}\n\nexport function compare(v1, v2) {\n return self().compare(v1, v2);\n}\n\n// Control (additional)\nexport function warp(procedure) {\n return self().warp(procedure);\n}\n\n// Loop helpers\nexport function repeat(times, body) {\n for (var i = 0; i < times; i++) {\n body();\n }\n}\n\nexport function forever(body) {\n while (true) {\n body();\n }\n}\n\nexport function untilLoop(condition, body) {\n while (!condition()) {\n body();\n }\n}\n\n// Color utilities\nexport function rgb(r, g, b) {\n return Color.rgb(r, g, b);\n}\n\nexport function hex(hex) {\n return Color.hex(hex);\n}\n\nexport function colorNumToRgb(num) {\n return Color.num(num);\n}\n\nfunction hexToRGB(hex) { return Color.hexToRGB(hex); }\nfunction hexToHSL(hex) { return Color.hexToHSL(hex); }\nfunction rgbToHex(r, g, b) { return Color.rgbToHex(r, g, b); }\nfunction rgbToHSL(r, g, b) { return Color.rgbToHSL(r, g, b); }\nfunction hslToRGB(h, s, l) { return Color.hslToRGB(h, s, l); }\nfunction hslToHex(h, s, l) { return Color.hslToHex(h, s, l); }\n";
16
+ exports.SPRITE_FUNCS_JS = "\n// spriteFuncs.js - Free functions that delegate to the current sprite\n// These allow cleaner code: wait(1) instead of this.wait(1)\n// Works both during init() (via constructing target) and at runtime (via context.target)\n\nimport { context } from \"./userApi.js\";\nimport { getConstructingTarget } from \"./helpers.js\";\n\nfunction self() {\n return getConstructingTarget() || context.target;\n}\n\n// Control\nexport function wait(seconds) {\n return self().wait(seconds);\n}\n\nexport function broadcast(message) {\n return self().broadcast(message);\n}\n\nexport function broadcastAndWait(message) {\n return self().broadcastAndWait(message);\n}\n\nexport function createClone() {\n self().createClone();\n}\n\nexport function deleteThisClone() {\n self().deleteThisClone();\n}\n\nexport function stop(option) {\n self().stop(option);\n}\n\nexport function stopAllSounds() {\n self().stopAllSounds();\n}\n\n// Looks\nexport function say(message) {\n self().say(message);\n}\n\nexport function sayAndWait(message, seconds) {\n return self().sayAndWait(message, seconds);\n}\n\nexport function think(message) {\n self().think(message);\n}\n\nexport function thinkAndWait(message, seconds) {\n return self().thinkAndWait(message, seconds);\n}\n\n// Motion\nexport function move(steps) {\n self().move(steps);\n}\n\nexport function goto(x, y) {\n self().goto(x, y);\n}\n\nexport function glide(seconds, x, y) {\n return self().glide(seconds, x, y);\n}\n\nexport function setDirection(direction) {\n self().direction = direction;\n}\n\nexport function changeDirection(amount) {\n self().direction += amount;\n}\n\nexport function turnClockwise(degrees) {\n self().direction += degrees;\n}\n\nexport function turnCounterClockwise(degrees) {\n self().direction -= degrees;\n}\n\nexport function pointTowards(target) {\n var s = self();\n var x, y;\n if (typeof target === \"string\" && target === \"mouse\") {\n x = s.mouse.x;\n y = s.mouse.y;\n } else {\n x = target.x;\n y = target.y;\n }\n s.direction = s.radToScratch(Math.atan2(y - s.y, x - s.x));\n}\n\nexport function changeX(amount) {\n self().x += amount;\n}\n\nexport function setX(x) {\n self().x = x;\n}\n\nexport function changeY(amount) {\n self().y += amount;\n}\n\nexport function setY(y) {\n self().y = y;\n}\n\nexport function ifOnEdgeBounce() {\n self().ifOnEdgeBounce();\n}\n\n// Pen\nexport function stamp() {\n self().stamp();\n}\n\nexport function penDown() {\n self().penDown = true;\n}\n\nexport function penUp() {\n self().penDown = false;\n}\n\nexport function setPenColor(color) {\n self().penColor = color;\n}\n\nexport function setPenSize(size) {\n self().penSize = size;\n}\n\nexport function changePenSize(amount) {\n self().penSize += amount;\n}\n\nexport function clearPen() {\n self().clearPen();\n}\n\n// Sound\nexport function playSoundUntilDone(sound) {\n return self().playSoundUntilDone(sound);\n}\n\nexport function startSound(sound) {\n return self().startSound(sound);\n}\n\n// Sensing\nexport function touching(target) {\n return self().touching(target);\n}\n\nexport function colorTouching(color, target) {\n return self().colorTouching(color, target);\n}\n\nexport function keyPressed(key) {\n return self().keyPressed(key);\n}\n\nexport function isMouseDown() {\n return self().mouse.down;\n}\n\nexport function getMouseX() {\n return self().mouse.x;\n}\n\nexport function getMouseY() {\n return self().mouse.y;\n}\n\nexport function askAndWait(question) {\n return self().askAndWait(question);\n}\n\nexport function getAnswer() {\n return self().answer;\n}\n\nexport function getTimer() {\n return self().timer;\n}\n\nexport function restartTimer() {\n self().restartTimer();\n}\n\n// Visibility\nexport function show() {\n self().visible = true;\n}\n\nexport function hide() {\n self().visible = false;\n}\n\n// Size\nexport function setSize(percent) {\n self().size = percent;\n}\n\nexport function changeSize(amount) {\n self().size += amount;\n}\n\n// Effects\nexport function setEffect(effect, value) {\n self().effects[effect] = value;\n}\n\nexport function changeEffect(effect, amount) {\n self().effects[effect] += amount;\n}\n\nexport function clearEffects() {\n self().effects.clear();\n}\n\n// Costume\nexport function setCostume(costume) {\n self().costume = costume;\n}\n\nexport function nextCostume() {\n self().costumeNumber++;\n}\n\n// Layer\nexport function moveToFront() {\n self().moveAhead();\n}\n\nexport function moveToBack() {\n self().moveBehind();\n}\n\nexport function moveForward(layers = 1) {\n self().moveAhead(layers);\n}\n\nexport function moveBackward(layers = 1) {\n self().moveBehind(layers);\n}\n\n// Rotation style\nexport function setRotationStyle(style) {\n self().rotationStyle = style;\n}\n\n// Variables / Watchers\nexport function createVar(name, initialValue, options) {\n self().createVar(name, initialValue, options);\n}\n\nexport function setVar(name, value) {\n self().setVar(name, value);\n}\n\nexport function showVar(name) {\n self().showVar(name);\n}\n\nexport function hideVar(name) {\n self().hideVar(name);\n}\n\nexport function moveVar(name, x, y) {\n self().moveVar(name, x, y);\n}\n\n// Event handlers\nexport function whenGreenFlag(method) {\n self().whenGreenFlag(method);\n}\n\nexport function whenKeyPressed(keyOrOptions, method) {\n self().whenKeyPressed(keyOrOptions, method);\n}\n\nexport function whenBroadcast(nameOrOptions, method) {\n self().whenBroadcast(nameOrOptions, method);\n}\n\nexport function whenClicked(method) {\n self().whenClicked(method);\n}\n\nexport function whenTouchStart(method) {\n self().whenTouchStart(method);\n}\n\nexport function whenTouchEnd(method) {\n self().whenTouchEnd(method);\n}\n\nexport function whenTouchMove(method) {\n self().whenTouchMove(method);\n}\n\nexport function whenCloneStart(method) {\n self().whenCloneStart(method);\n}\n\nexport function whenBackdropChanged(method) {\n self().whenBackdropChanged(method);\n}\n\n// Sound (additional)\nexport function stopAllOfMySounds() {\n self().stopAllOfMySounds();\n}\n\nexport function getSound(soundName) {\n return self().getSound(soundName);\n}\n\n// Motion (additional getters/setters)\nexport function getX() {\n return self().x;\n}\n\nexport function getY() {\n return self().y;\n}\n\nexport function getDirection() {\n return self().direction;\n}\n\nexport function positionInFence() {\n self().positionInFence();\n}\n\nexport function moveAhead(value) {\n self().moveAhead(value);\n}\n\nexport function moveBehind(value) {\n self().moveBehind(value);\n}\n\n// Looks (additional getters)\nexport function getCostumeNumber() {\n return self().costumeNumber;\n}\n\nexport function setCostumeNumber(number) {\n self().costumeNumber = number;\n}\n\nexport function prevCostume() {\n self().costumeNumber--;\n}\n\nexport function getCostume() {\n return self().costume.name;\n}\n\nexport function getCostumes() {\n return self().costumes.map(c => c.name);\n}\n\nexport function getSize() {\n return self().size;\n}\n\nexport function getVisible() {\n return self().visible;\n}\n\n// Sensing (additional)\nexport function getLoudness() {\n return self().loudness;\n}\n\nexport function nearestEdge() {\n return self().nearestEdge();\n}\n\nexport function getStage() {\n return self().stage;\n}\n\nexport function getSprites() {\n return self().sprites;\n}\n\n// Pen (additional getters)\nexport function getPenDown() {\n return self().penDown;\n}\n\nexport function getPenColor() {\n return self().penColor;\n}\n\nexport function getPenSize() {\n return self().penSize;\n}\n\n// Clone\nexport function andClones() {\n return self().andClones();\n}\n\n// Math utilities\nexport function degToRad(deg) {\n return self().degToRad(deg);\n}\n\nexport function radToDeg(rad) {\n return self().radToDeg(rad);\n}\n\nexport function degToScratch(deg) {\n return self().degToScratch(deg);\n}\n\nexport function scratchToDeg(scratchDir) {\n return self().scratchToDeg(scratchDir);\n}\n\nexport function radToScratch(rad) {\n return self().radToScratch(rad);\n}\n\nexport function scratchToRad(scratchDir) {\n return self().scratchToRad(scratchDir);\n}\n\nexport function scratchTan(angle) {\n return self().scratchTan(angle);\n}\n\nexport function normalizeDeg(deg) {\n return self().normalizeDeg(deg);\n}\n\nexport function wrapClamp(n, min, max) {\n return self().wrapClamp(n, min, max);\n}\n\nexport function random(a, b) {\n return self().random(a, b);\n}\n\n// Type conversion\nexport function toNumber(value) {\n return self().toNumber(value);\n}\n\nexport function toBoolean(value) {\n return self().toBoolean(value);\n}\n\nexport function toStr(value) {\n return self().toString(value);\n}\n\n// String / Array utilities\nexport function stringIncludes(string, substring) {\n return self().stringIncludes(string, substring);\n}\n\nexport function arrayIncludes(array, value) {\n return self().arrayIncludes(array, value);\n}\n\nexport function letterOf(string, index) {\n return self().letterOf(string, index);\n}\n\nexport function itemOf(array, index) {\n return self().itemOf(array, index);\n}\n\nexport function indexInArray(array, value) {\n return self().indexInArray(array, value);\n}\n\nexport function compare(v1, v2) {\n return self().compare(v1, v2);\n}\n\n// Control (additional)\nexport function warp(procedure) {\n return self().warp(procedure);\n}\n\n// Loop helpers\nexport function repeat(times, body) {\n for (var i = 0; i < times; i++) {\n body();\n }\n}\n\nexport function forever(body) {\n while (true) {\n body();\n }\n}\n\nexport function untilLoop(condition, body) {\n while (!condition()) {\n body();\n }\n}\n\n// Color utilities\nexport function rgb(r, g, b) {\n return Color.rgb(r, g, b);\n}\n\nexport function hex(hex) {\n return Color.hex(hex);\n}\n\nexport function colorNumToRgb(num) {\n return Color.num(num);\n}\n\nfunction hexToRGB(hex) { return Color.hexToRGB(hex); }\nfunction hexToHSL(hex) { return Color.hexToHSL(hex); }\nfunction rgbToHex(r, g, b) { return Color.rgbToHex(r, g, b); }\nfunction rgbToHSL(r, g, b) { return Color.rgbToHSL(r, g, b); }\nfunction hslToRGB(h, s, l) { return Color.hslToRGB(h, s, l); }\nfunction hslToHex(h, s, l) { return Color.hslToHex(h, s, l); }\n";
17
17
  exports.REGISTRATION_RUNTIME_JS = "\n// registrationRuntime.js\n// Stores \"which sprite class is currently being registered\" during module evaluation.\nconst REG = {\n currentSpriteClass: null,\n};\nexport function enterSpriteRegistration(spriteClass) {\n REG.currentSpriteClass = spriteClass;\n}\nexport function exitSpriteRegistration() {\n REG.currentSpriteClass = null;\n}\nexport function getCurrentSpriteClass() {\n const Cls = REG.currentSpriteClass;\n if (!Cls) {\n throw new Error(\n \"Sprite registration API called outside sprite module evaluation. \" +\n \"Make sure index.js calls enterSpriteRegistration(Class) before importing the sprite user module.\"\n );\n }\n return Cls;\n}\n";
18
18
  var getInfrastructureFiles = function (options) {
19
19
  if (options === void 0) { options = {}; }
@@ -29,4 +29,4 @@ var getInfrastructureFiles = function (options) {
29
29
  });
30
30
  };
31
31
  exports.getInfrastructureFiles = getInfrastructureFiles;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmFzdHJ1Y3R1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW8vbGVvcGFyZC9pbmZyYXN0cnVjdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFNSCxJQUFNLHNCQUFzQixHQUFHLGtGQUFrRixDQUFDO0FBRXJHLFFBQUEsVUFBVSxHQUFHLHFzQkF3QnpCLENBQUM7QUFFVyxRQUFBLGNBQWMsR0FBRyxxa0lBcUg3QixDQUFDO0FBRVcsUUFBQSxhQUFhLEdBQUcsNHpHQW9INUIsQ0FBQztBQUVXLFFBQUEsb0JBQW9CLEdBQUcsNDhCQWlDbkMsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUcsK2tCQXNCbEMsQ0FBQztBQUVLLElBQU0sWUFBWSxHQUFHLFVBQUMsYUFBc0IsSUFBSyxPQUFBLHFPQUl2RCxFQUp1RCxDQUl2RCxDQUFDO0FBSlcsUUFBQSxZQUFZLGdCQUl2QjtBQUVXLFFBQUEsZUFBZSxHQUFHLG1sVUEyaEI5QixDQUFDO0FBRVcsUUFBQSx1QkFBdUIsR0FBRywrcUJBc0J0QyxDQUFDO0FBRUssSUFBTSxzQkFBc0IsR0FBRyxVQUFDLE9BQW1DO0lBQW5DLHdCQUFBLEVBQUEsWUFBbUM7SUFBSyxPQUFBLENBQUM7UUFDOUUsWUFBWSxFQUFFLElBQUEsb0JBQVksRUFBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ2hELFlBQVksRUFBRSxrQkFBVTtRQUN4QixnQkFBZ0IsRUFBRSx1QkFBZTtRQUNqQyxlQUFlLEVBQUUsc0JBQWM7UUFDL0IsY0FBYyxFQUFFLHFCQUFhO1FBQzdCLG9CQUFvQixFQUFFLDRCQUFvQjtRQUMxQyxtQkFBbUIsRUFBRSwyQkFBbUI7UUFDeEMsd0JBQXdCLEVBQUUsK0JBQXVCO0tBQ2xELENBQUM7QUFUNkUsQ0FTN0UsQ0FBQztBQVRVLFFBQUEsc0JBQXNCLDBCQVNoQyJ9
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmFzdHJ1Y3R1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW8vbGVvcGFyZC9pbmZyYXN0cnVjdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFNSCxJQUFNLHNCQUFzQixHQUFHLGtGQUFrRixDQUFDO0FBRXJHLFFBQUEsVUFBVSxHQUFHLHFzQkF3QnpCLENBQUM7QUFFVyxRQUFBLGNBQWMsR0FBRyxxa0lBcUg3QixDQUFDO0FBRVcsUUFBQSxhQUFhLEdBQUcsNHpHQW9INUIsQ0FBQztBQUVXLFFBQUEsb0JBQW9CLEdBQUcsNDhCQWlDbkMsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUcsK2tCQXNCbEMsQ0FBQztBQUVLLElBQU0sWUFBWSxHQUFHLFVBQUMsYUFBc0IsSUFBSyxPQUFBLHFPQUl2RCxFQUp1RCxDQUl2RCxDQUFDO0FBSlcsUUFBQSxZQUFZLGdCQUl2QjtBQUVXLFFBQUEsZUFBZSxHQUFHLHdsVUEyaEI5QixDQUFDO0FBRVcsUUFBQSx1QkFBdUIsR0FBRywrcUJBc0J0QyxDQUFDO0FBRUssSUFBTSxzQkFBc0IsR0FBRyxVQUFDLE9BQW1DO0lBQW5DLHdCQUFBLEVBQUEsWUFBbUM7SUFBSyxPQUFBLENBQUM7UUFDOUUsWUFBWSxFQUFFLElBQUEsb0JBQVksRUFBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ2hELFlBQVksRUFBRSxrQkFBVTtRQUN4QixnQkFBZ0IsRUFBRSx1QkFBZTtRQUNqQyxlQUFlLEVBQUUsc0JBQWM7UUFDL0IsY0FBYyxFQUFFLHFCQUFhO1FBQzdCLG9CQUFvQixFQUFFLDRCQUFvQjtRQUMxQyxtQkFBbUIsRUFBRSwyQkFBbUI7UUFDeEMsd0JBQXdCLEVBQUUsK0JBQXVCO0tBQ2xELENBQUM7QUFUNkUsQ0FTN0UsQ0FBQztBQVRVLFFBQUEsc0JBQXNCLDBCQVNoQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sb-edit-custom",
3
- "version": "0.20.129",
3
+ "version": "0.20.130",
4
4
  "description": "Import, edit, and export Scratch project files",
5
5
  "keywords": [
6
6
  "Scratch",