sb-edit-custom 0.20.147 → 0.20.149

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cli/index.js CHANGED
File without changes
@@ -14,8 +14,19 @@ function generateAssetRegistryJS(game) {
14
14
  const spriteScale = sprite.scale ?? 1;
15
15
  const costumeEntries = Object.values(sprite.costumes)
16
16
  .map(costume => {
17
- const centerX = (sprite.isStage ? 480 : costume.centerX) ?? 0;
18
- const centerY = (sprite.isStage ? 360 : costume.centerY) ?? 0;
17
+ // Use the costume's own rotation center for both stages and
18
+ // sprites. The Stage center used to be hard-coded to (480, 360),
19
+ // which broke any backdrop whose stored center was not those exact
20
+ // physical-pixel values: a logical-size 480x360 backdrop would be
21
+ // anchored at (480, 360) and only fill the upper-left quadrant.
22
+ // Falling back to (240, 180) for a missing stage center keeps
23
+ // legacy default backdrops centered.
24
+ const centerX = sprite.isStage
25
+ ? (costume.centerX ?? 240)
26
+ : (costume.centerX ?? 0);
27
+ const centerY = sprite.isStage
28
+ ? (costume.centerY ?? 180)
29
+ : (costume.centerY ?? 0);
19
30
  const fileKey = `${costume.name}.${costume.ext}`;
20
31
  // Pass resolution explicitly when the costume model declares one,
21
32
  // otherwise omit so Leopard falls back to its bitmap default (2).
@@ -208,4 +219,4 @@ function generateConstantsFile(game) {
208
219
  // export default project;
209
220
  // `;
210
221
  // }
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvZ2FtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDOztBQWdCL0MsMERBNkRDO0FBRUQsMENBcUZDO0FBRUQsc0RBS0M7QUF6S0QsNkRBR21DO0FBQ25DLHVEQUFnRDtBQVVoRCxTQUFnQix1QkFBdUIsQ0FBQyxJQUFlO0lBQ3JELE1BQU0sV0FBVyxHQUFHLElBQUEsMkNBQTRCLEVBQUMsNkJBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUU3RSxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRS9ELE1BQU0sZUFBZSxHQUFHLFVBQVU7U0FDL0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ1osTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUE7UUFDckMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2FBQ2xELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNiLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzdELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzdELE1BQU0sT0FBTyxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7WUFDaEQsa0VBQWtFO1lBQ2xFLGtFQUFrRTtZQUNsRSxNQUFNLGVBQWUsR0FDbkIsT0FBTyxPQUFPLENBQUMsZ0JBQWdCLEtBQUssUUFBUTtnQkFDMUMsQ0FBQyxDQUFDLDhCQUE4QixPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQzFELENBQUMsQ0FBQyxFQUFFLENBQUE7WUFFUixPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQzttQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLGFBQWEsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7MkJBQ2xFLE9BQU8sR0FBRyxXQUFXLFFBQVEsT0FBTyxHQUFHLFdBQVc7cUJBQ3hELFdBQVcsR0FBRyxlQUFlO2FBQ3JDLENBQUE7UUFDTCxDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7UUFFeEIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2FBQzlDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNYLE1BQU0sT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUE7WUFDNUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FDM0YsS0FBSyxNQUFNLENBQUMsSUFBSSxXQUFXLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUNyRCxHQUFHLENBQUE7UUFDTixDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7UUFFeEIsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJO3VCQUNKLE1BQU0sQ0FBQyxXQUFXLElBQUksQ0FBQzs7WUFFbEMsY0FBYzs7O1lBR2QsWUFBWTs7UUFFaEIsQ0FBQTtJQUNKLENBQUMsQ0FBQztTQUNELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUVwQixPQUFPOzs7O1FBSUQsZUFBZTs7Ozs7O0dBTXBCLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLElBQWU7SUFDN0MsTUFBTSxXQUFXLEdBQUcsSUFBQSwyQ0FBNEIsRUFBQyw2QkFBYyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBRTdFLE9BQU87Ozs7OztNQU1ILE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUMxQixHQUFHLENBQ0YsTUFBTSxDQUFDLEVBQUUsQ0FDUCxVQUFVLE1BQU0sQ0FBQyxJQUFJLFlBQVksTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxPQUFPLENBQ3JFO1NBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQzs7Ozs7a0VBS2lELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEdBQUcsYUFBYSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHOztRQUV0SCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDMUIsR0FBRyxDQUNGLE1BQU0sQ0FBQyxFQUFFLENBQ1AsZ0JBQWdCLE1BQU0sQ0FBQyxJQUFJLHNCQUFzQixNQUFNLENBQUMsSUFBSSxJQUFJLENBQ25FO1NBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQzs7O1VBR1QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQzFCLEdBQUcsQ0FDRixNQUFNLENBQUMsRUFBRSxDQUNQLEdBQUcsTUFBTSxDQUFDLElBQUksZ0JBQWdCLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMzRCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDWCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDWCxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7UUFDM0IsYUFBYSxFQUFFLHdCQUNiO1lBQ0UsTUFBTSxFQUFFLFlBQVk7WUFDcEIsU0FBUyxFQUFFLFlBQVk7WUFDdkIsSUFBSSxFQUFFLGFBQWE7U0FDcEIsQ0FBQyxNQUFNLENBQUMsYUFBYyxDQUN6QixFQUFFO1FBQ0YsYUFBYSxFQUFFLDhCQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxpQ0FBaUM7UUFDakcsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1FBQ2pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztRQUN2QixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7S0FDOUIsQ0FBQztTQUNDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxLQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztTQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FDbkI7U0FDQSxJQUFJLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ25CLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsSUFBZTtJQUNuRCxPQUFPOztrQ0FFeUIsSUFBSSxDQUFDLFlBQVk7R0FDaEQsQ0FBQTtBQUNILENBQUM7QUFFRCw2REFBNkQ7QUFDN0QsbUZBQW1GO0FBRW5GLGFBQWE7QUFDYixrSUFBa0k7QUFFbEkscURBQXFEO0FBQ3JELGNBQWM7QUFDZCxvQkFBb0I7QUFDcEIsK0hBQStIO0FBQy9ILFVBQVU7QUFDVixxQkFBcUI7QUFFckIsa0dBQWtHO0FBRWxHLHVEQUF1RDtBQUN2RCxzQ0FBc0M7QUFDdEMsY0FBYztBQUNkLHVDQUF1QztBQUN2QyxvQkFBb0I7QUFDcEIsb0NBQW9DO0FBQ3BDLFVBQVU7QUFDVixRQUFRO0FBRVIsOEJBQThCO0FBQzlCLHVEQUF1RDtBQUN2RCxjQUFjO0FBQ2Qsb0JBQW9CO0FBQ3BCLHVGQUF1RjtBQUN2RixVQUFVO0FBQ1YscUJBQXFCO0FBRXJCLHlKQUF5SjtBQUV6SiwwQkFBMEI7QUFDMUIsd0NBQXdDO0FBQ3hDLGNBQWM7QUFDZCxvQkFBb0I7QUFDcEIsb0VBQW9FO0FBQ3BFLDJCQUEyQjtBQUMzQiwyQkFBMkI7QUFDM0IsMkNBQTJDO0FBQzNDLHVEQUF1RDtBQUN2RCxzQ0FBc0M7QUFDdEMseUNBQXlDO0FBQ3pDLG9DQUFvQztBQUNwQyx1Q0FBdUM7QUFDdkMsb0JBQW9CO0FBQ3BCLHVEQUF1RDtBQUN2RCxpQ0FBaUM7QUFDakMsdUNBQXVDO0FBQ3ZDLDRDQUE0QztBQUM1QyxlQUFlO0FBQ2Ysb0VBQW9FO0FBQ3BFLDZCQUE2QjtBQUM3QixVQUFVO0FBQ1Ysc0JBQXNCO0FBQ3RCLFdBQVc7QUFFWCxzREFBc0Q7QUFDdEQscUVBQXFFO0FBQ3JFLFlBQVk7QUFFWixvQ0FBb0M7QUFFcEMsK0VBQStFO0FBQy9FLCtCQUErQjtBQUMvQixZQUFZO0FBRVosZ0ZBQWdGO0FBQ2hGLDZCQUE2QjtBQUM3QixZQUFZO0FBRVosb0JBQW9CO0FBQ3BCLDZCQUE2QjtBQUM3Qix3QkFBd0I7QUFDeEIsUUFBUTtBQUVSLG9DQUFvQztBQUNwQyw4QkFBOEI7QUFDOUIsT0FBTztBQUNQLElBQUkifQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvZ2FtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDOztBQWdCL0MsMERBd0VDO0FBRUQsMENBcUZDO0FBRUQsc0RBS0M7QUFwTEQsNkRBR21DO0FBQ25DLHVEQUFnRDtBQVVoRCxTQUFnQix1QkFBdUIsQ0FBQyxJQUFlO0lBQ3JELE1BQU0sV0FBVyxHQUFHLElBQUEsMkNBQTRCLEVBQUMsNkJBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUU3RSxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRS9ELE1BQU0sZUFBZSxHQUFHLFVBQVU7U0FDL0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ1osTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUE7UUFDckMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2FBQ2xELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNiLDREQUE0RDtZQUM1RCxpRUFBaUU7WUFDakUsbUVBQW1FO1lBQ25FLGtFQUFrRTtZQUNsRSxnRUFBZ0U7WUFDaEUsOERBQThEO1lBQzlELHFDQUFxQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTztnQkFDNUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU87Z0JBQzVCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFD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
@@ -36,18 +36,37 @@ function generateSpriteDefJS(sprite) {
36
36
  super(...args);
37
37
  this.costumes = [
38
38
  ${Object.values(sprite.costumes)
39
- .map(costume => `new Costume({name: ${JSON.stringify(costume.name)}, url: ${JSON.stringify(toLeopard_js_1.defaultOptions.getAssetURL({
40
- type: "costume",
41
- target: sprite.name,
42
- name: costume.name,
43
- md5: costume.md5,
44
- ext: costume.ext,
45
- }))}, center: {
46
- // x: costume.centerX,
47
- // y: costume.centerY
48
- x: ${sprite.isStage ? 480 : costume.centerX} * CostumeScale * spriteScale,
49
- y: ${sprite.isStage ? 360 : costume.centerY} * CostumeScale * spriteScale,
50
- }, scale: 1 * CostumeScale * spriteScale})`)
39
+ .map(costume => {
40
+ // Use the costume's own rotation center. Previously the
41
+ // Stage's center was hard-coded to (480, 360) which broke
42
+ // edited backdrops: a logical-size 480x360 backdrop would
43
+ // be anchored at (480,360) and only fill the upper-left
44
+ // quadrant of the stage. Falling back to (240,180) for a
45
+ // missing stage center keeps default backdrops centered.
46
+ const centerX = sprite.isStage
47
+ ? (costume.centerX ?? 240)
48
+ : (costume.centerX ?? 0);
49
+ const centerY = sprite.isStage
50
+ ? (costume.centerY ?? 180)
51
+ : (costume.centerY ?? 0);
52
+ // Pass bitmapResolution through so Leopard renders bitmap
53
+ // costumes at the right size (defaults to 2 if absent).
54
+ const resolution = typeof costume.bitmapResolution === "number" &&
55
+ (costume.bitmapResolution === 1 ||
56
+ costume.bitmapResolution === 2)
57
+ ? costume.bitmapResolution
58
+ : 2;
59
+ return `new Costume({name: ${JSON.stringify(costume.name)}, url: ${JSON.stringify(toLeopard_js_1.defaultOptions.getAssetURL({
60
+ type: "costume",
61
+ target: sprite.name,
62
+ name: costume.name,
63
+ md5: costume.md5,
64
+ ext: costume.ext,
65
+ }))}, center: {
66
+ x: ${centerX} * CostumeScale * spriteScale,
67
+ y: ${centerY} * CostumeScale * spriteScale,
68
+ }, scale: 1 * CostumeScale * spriteScale, resolution: ${resolution}})`;
69
+ })
51
70
  .join(",\n")}
52
71
  ];
53
72
 
@@ -82,4 +101,4 @@ function generateSpriteDefJS(sprite) {
82
101
  `,
83
102
  ];
84
103
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVscy9zcHJpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVEQUF1RDs7QUEyQ3ZELGtEQWFDO0FBRUQsa0RBNkVDO0FBcklELDZEQUdtQztBQXNDbkMsU0FBZ0IsbUJBQW1CLENBQUMsTUFBbUI7SUFDckQsTUFBTSxXQUFXLEdBQUcsSUFBQSwyQ0FBNEIsRUFBQyw2QkFBYyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBRTdFLE9BQU87UUFDTCxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksS0FBSztRQUNsQztZQUNRLE1BQU0sQ0FBQyxJQUFJOzs7OztHQUtwQjtLQUNBLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsTUFBbUI7SUFDckQsTUFBTSxXQUFXLEdBQUcsSUFBQSwyQ0FBNEIsRUFBQyw2QkFBYyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBRTdFLE9BQU87UUFDTCxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksU0FBUztRQUN0QztpQkFFSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsUUFDMUM7OzZEQUV1RCxNQUFNLENBQUMsSUFBSTs7Ozs0QkFJNUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDOzs2QkFFaEIsTUFBTSxDQUFDLElBQUksWUFBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVE7Ozs7O2dCQUszRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7YUFDN0IsR0FBRyxDQUNGLE9BQU8sQ0FBQyxFQUFFLENBQ1Isc0JBQXNCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxTQUFTLENBQ3hFLDZCQUFjLENBQUMsV0FBVyxDQUFDO1lBQ3pCLElBQUksRUFBRSxTQUFTO1lBQ2YsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ25CLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1NBQ2pCLENBQUMsQ0FDSDs7O21CQUdGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU87bUJBQ3RDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU87dURBQ0YsQ0FDdEM7YUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDOzs7O2dCQUlaLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUMzQixHQUFHLENBQ0YsS0FBSyxDQUFDLEVBQUUsQ0FDTixhQUFhLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQ3hELDZCQUFjLENBQUMsV0FBVyxDQUFDO1lBQ3pCLElBQUksRUFBRSxPQUFPO1lBQ2IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ25CLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7U0FDZixDQUFDLENBQ0gsR0FBRyxDQUNQO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQzs7Ozs0QkFJQSxNQUFNLENBQUMsSUFBSTs7Ozs7Ozs7Ozs7Ozs7O0tBZWxDO0tBQ0YsQ0FBQTtBQUNILENBQUMifQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVscy9zcHJpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVEQUF1RDs7QUEyQ3ZELGtEQWFDO0FBRUQsa0RBOEZDO0FBdEpELDZEQUdtQztBQXNDbkMsU0FBZ0IsbUJBQW1CLENBQUMsTUFBbUI7SUFDckQsTUFBTSxXQUFXLEdBQUcsSUFBQSwyQ0FBNEIsRUFBQyw2QkFBYyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBRTdFLE9BQU87UUFDTCxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksS0FBSztRQUNsQztZQUNRLE1BQU0sQ0FBQyxJQUFJOzs7OztHQUtwQjtLQUNBLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsTUFBbUI7SUFDckQsTUFBTSxXQUFXLEdBQUcsSUFBQSwyQ0FBNEIsRUFBQyw2QkFBYyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBRTdFLE9BQU87UUFDTCxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksU0FBUztRQUN0QztpQkFFSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsUUFDMUM7OzZEQUV1RCxNQUFNLENBQUMsSUFBSTs7Ozs0QkFJNUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDOzs2QkFFaEIsTUFBTSxDQUFDLElBQUksWUFBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVE7Ozs7O2dCQUszRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7YUFDN0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2Isd0RBQXdEO1lBQ3hELDBEQUEwRDtZQUMxRCwwREFBMEQ7WUFDMUQsd0RBQXdEO1lBQ3hELHlEQUF5RDtZQUN6RCx5REFBeUQ7WUFDekQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU87Z0JBQzVCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDO2dCQUMxQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQzFCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPO2dCQUM1QixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUMxQiwwREFBMEQ7WUFDMUQsd0RBQXdEO1lBQ3hELE1BQU0sVUFBVSxHQUNkLE9BQU8sT0FBTyxDQUFDLGdCQUFnQixLQUFLLFFBQVE7Z0JBQzVDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixLQUFLLENBQUM7b0JBQzdCLE9BQU8sQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO2dCQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ1AsT0FBTyxzQkFBc0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFNBQVMsQ0FDL0UsNkJBQWMsQ0FBQyxXQUFXLENBQUM7Z0JBQ3pCLElBQUksRUFBRSxTQUFTO2dCQUNmLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDbkIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO2dCQUNsQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7Z0JBQ2hCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRzthQUNqQixDQUFDLENBQ0g7bUJBQ0EsT0FBTzttQkFDUCxPQUFPO29FQUMwQyxVQUFVLElBQUksQ0FBQTtRQUNsRSxDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDOzs7O2dCQUlaLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUMzQixHQUFHLENBQ0YsS0FBSyxDQUFDLEVBQUUsQ0FDTixhQUFhLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQ3hELDZCQUFjLENBQUMsV0FBVyxDQUFDO1lBQ3pCLElBQUksRUFBRSxPQUFPO1lBQ2IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ25CLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7U0FDZixDQUFDLENBQ0gsR0FBRyxDQUNQO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQzs7Ozs0QkFJQSxNQUFNLENBQUMsSUFBSTs7Ozs7Ozs7Ozs7Ozs7O0tBZWxDO0tBQ0YsQ0FBQTtBQUNILENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sb-edit-custom",
3
- "version": "0.20.147",
3
+ "version": "0.20.149",
4
4
  "description": "Import, edit, and export Scratch project files",
5
5
  "keywords": [
6
6
  "Scratch",