@atomicsmash/cli 3.1.2 → 4.0.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/commands/blocks.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,iBAAiB,+YAY7B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QA+J5C"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/commands/blocks.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,iBAAiB,+YAY7B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QA+J5C"}
@@ -1,21 +1,16 @@
1
1
  import crypto from "node:crypto";
2
2
  import { readFileSync, writeFileSync, renameSync } from "node:fs";
3
3
  import { readdir } from "node:fs/promises";
4
- import { resolve as resolvePath, dirname as pathDirname } from "node:path";
5
- import { fileURLToPath } from "node:url";
4
+ import { resolve as resolvePath } from "node:path";
6
5
  import DependencyExtractionWebpackPlugin from "@wordpress/dependency-extraction-webpack-plugin";
7
6
  import defaultConfig from "@wordpress/scripts/config/webpack.config.js";
8
7
  import autoprefixer from "autoprefixer";
9
8
  import cssnano from "cssnano";
10
9
  import glob from "glob-promise";
11
10
  import postcss from "postcss";
12
- import TsconfigPathsPlugin from "tsconfig-paths-webpack-plugin";
11
+ import { TsconfigPathsPlugin } from "tsconfig-paths-webpack-plugin";
13
12
  import webpack from "webpack";
14
13
  import { hasHelpFlag, toCamelCase } from "../utils.js";
15
- // eslint-disable-next-line @typescript-eslint/naming-convention
16
- const __filename = fileURLToPath(import.meta.url);
17
- // eslint-disable-next-line @typescript-eslint/naming-convention
18
- const __dirname = pathDirname(__filename);
19
14
  const isProduction = process.env.NODE_ENV === "production";
20
15
  export const blocksHelpMessage = `
21
16
  Atomic Smash CLI - Blocks command.
@@ -49,7 +44,7 @@ export default function blocks(args) {
49
44
  ...defaultConfig,
50
45
  entry: () => getAllBlocksJSEntryPoints(srcFolder),
51
46
  plugins: [
52
- ...(defaultConfig.plugins?.filter((plugin) => plugin.constructor.name !== "DependencyExtractionWebpackPlugin") ?? []),
47
+ ...(defaultConfig.plugins?.filter((plugin) => plugin?.constructor.name !== "DependencyExtractionWebpackPlugin") ?? []),
53
48
  new DependencyExtractionWebpackPlugin({
54
49
  combineAssets: true,
55
50
  }),
package/dist/utils.d.ts CHANGED
@@ -5,7 +5,9 @@ export declare const mainCommand: string;
5
5
  export declare const testCommand: string;
6
6
  export declare const packageVersion: string;
7
7
  export declare function hasHelpFlag(args: string[]): boolean;
8
- export declare function execute(command: string): Promise<{
8
+ export declare function execute(command: string, options?: {
9
+ debug: boolean;
10
+ }): Promise<{
9
11
  error: ExecException | null;
10
12
  stdout: string;
11
13
  stderr: string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAY7C,eAAO,MAAM,WAAW,aAA4C,CAAC;AAIrE,eAAO,MAAM,WAAW,QAAkC,CAAC;AAC3D,eAAO,MAAM,WAAW,QAAwD,CAAC;AAIjF,eAAO,MAAM,cAAc,QAAsB,CAAC;AAElD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAEzC;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM;WAEpC,aAAa,GAAG,IAAI;YACnB,MAAM;YACN,MAAM;GAUf;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,UAQvC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAY7C,eAAO,MAAM,WAAW,aAA4C,CAAC;AAIrE,eAAO,MAAM,WAAW,QAAkC,CAAC;AAC3D,eAAO,MAAM,WAAW,QAAwD,CAAC;AAIjF,eAAO,MAAM,cAAc,QAAsB,CAAC;AAElD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAEzC;AAED,wBAAsB,OAAO,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAqB;WAGtC,aAAa,GAAG,IAAI;YACnB,MAAM;YACN,MAAM;GAYf;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,UAQvC"}
package/dist/utils.js CHANGED
@@ -20,11 +20,13 @@ export const packageVersion = packageJson.version;
20
20
  export function hasHelpFlag(args) {
21
21
  return !!args.find((arg) => arg === "--help" || arg === "-h");
22
22
  }
23
- export async function execute(command) {
23
+ export async function execute(command, options = { debug: false }) {
24
24
  return new Promise((resolve, reject) => {
25
25
  exec(command, (error, stdout, stderr) => {
26
26
  if (error) {
27
- console.error({ error, stdout, stderr });
27
+ if (options.debug) {
28
+ console.error({ error, stdout, stderr });
29
+ }
28
30
  reject({ error, stdout, stderr });
29
31
  }
30
32
  resolve({ error, stdout, stderr });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomicsmash/cli",
3
- "version": "3.1.2",
3
+ "version": "4.0.0",
4
4
  "description": "A collection of CLI tools by Atomic Smash.",
5
5
  "keywords": [],
6
6
  "homepage": "https://www.atomicsmash.co.uk/",
@@ -40,26 +40,26 @@
40
40
  "lint:types": "tsc -b"
41
41
  },
42
42
  "dependencies": {
43
- "@wordpress/dependency-extraction-webpack-plugin": "^4.12.0",
44
- "@wordpress/scripts": "^26.0.0",
43
+ "@wordpress/dependency-extraction-webpack-plugin": "^4.20.0",
44
+ "@wordpress/scripts": "^26.8.0",
45
45
  "autoprefixer": "^10.4.14",
46
46
  "cssnano": "^5.1.15",
47
- "glob": "^8.0.3",
48
- "glob-promise": "^6.0.2",
47
+ "glob": "^8.1.0",
48
+ "glob-promise": "^6.0.3",
49
49
  "path": "^0.12.7",
50
- "postcss": "^8.4.21",
50
+ "postcss": "^8.4.25",
51
51
  "svg-sprite": "^2.0.2",
52
- "tsconfig-paths": "^4.1.2",
53
- "tsconfig-paths-webpack-plugin": "^4.0.1",
52
+ "tsconfig-paths": "^4.2.0",
53
+ "tsconfig-paths-webpack-plugin": "^4.1.0",
54
54
  "vinyl": "^3.0.0",
55
- "webpack": "^5.76.3"
55
+ "webpack": "^5.88.1"
56
56
  },
57
57
  "devDependencies": {
58
- "@types/glob": "^8.0.0",
58
+ "@types/glob": "^8.1.0",
59
59
  "@types/node": "^18.15.5",
60
60
  "@types/svg-sprite": "^0.0.34",
61
- "@types/vinyl": "^2.0.6",
62
- "@types/webpack": "^5.28.0",
63
- "type-fest": "^3.0.0"
61
+ "@types/vinyl": "^2.0.7",
62
+ "@types/webpack": "^5.28.1",
63
+ "type-fest": "^3.13.0"
64
64
  }
65
65
  }
@@ -1,3 +0,0 @@
1
- export declare function setup(): Promise<void>;
2
- export declare function teardown(): Promise<void>;
3
- //# sourceMappingURL=test-setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-setup.d.ts","sourceRoot":"","sources":["../src/test-setup.ts"],"names":[],"mappings":"AAgCA,wBAAsB,KAAK,kBAkB1B;AAED,wBAAsB,QAAQ,kBAS7B"}
@@ -1,44 +0,0 @@
1
- import { unlink, writeFile } from "node:fs";
2
- import { resolve as resolvePath, dirname as pathDirname } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { execute, packageJson } from "./utils";
5
- const packageName = packageJson.name;
6
- const packageVersion = packageJson.version;
7
- function isValidPackageName(packageName) {
8
- return !!packageName;
9
- }
10
- function isValidPackageVersion(packageVersion) {
11
- return !!packageVersion;
12
- }
13
- if (!isValidPackageName(packageName) ||
14
- !isValidPackageVersion(packageVersion)) {
15
- throw new Error("Invalid package, must have name and version");
16
- }
17
- const packName = `${packageName
18
- .replaceAll("@", "")
19
- .replaceAll(`/`, "-")}-${packageVersion}.tgz`;
20
- // eslint-disable-next-line @typescript-eslint/naming-convention
21
- const __filename = fileURLToPath(import.meta.url);
22
- // eslint-disable-next-line @typescript-eslint/naming-convention
23
- const __dirname = pathDirname(__filename);
24
- export async function setup() {
25
- console.log("Packing a test version...");
26
- await execute(`cd ${resolvePath(__dirname, "../")} && ls && npm pack --pack-destination ${__dirname}/tests/artifacts`);
27
- console.log(`Install test package...`);
28
- writeFile(`${__dirname}/tests/package.json`, "{}", (err) => {
29
- if (err) {
30
- console.log("writeFile failed");
31
- throw err;
32
- }
33
- });
34
- await execute(`cd ${__dirname}/tests && npm pkg set dependencies.@atomicsmash/cli=file:${__dirname}/tests/artifacts/${packName} && npm install`);
35
- }
36
- export async function teardown() {
37
- console.log("Deleting test package...");
38
- unlink(`${__dirname}/tests/artifacts/${packName}`, (err) => {
39
- if (err)
40
- throw err;
41
- });
42
- console.log("Deleting node modules...");
43
- await execute(`cd ${__dirname}/tests && rm -rf node_modules package.json package-lock.json`);
44
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=main.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.test.d.ts","sourceRoot":"","sources":["../../src/tests/main.test.ts"],"names":[],"mappings":""}
@@ -1,48 +0,0 @@
1
- import { expect, test, describe } from "vitest";
2
- import { execute } from "../utils";
3
- import { helpMessage, noCommandFound } from "./../messages.js";
4
- import { testCommand, packageVersion } from "./../utils.js";
5
- describe.concurrent("Base CLI helpers work as intended", () => {
6
- test("main cli shows help message if nothing is added after main command", async () => {
7
- await expect(execute(`${testCommand}`)).resolves.toEqual({
8
- error: null,
9
- stdout: `${helpMessage}\n`,
10
- stderr: "",
11
- });
12
- });
13
- test("main cli shows help message if --help is added after main command", async () => {
14
- await expect(execute(`${testCommand} --help`)).resolves.toEqual({
15
- error: null,
16
- stdout: `${helpMessage}\n`,
17
- stderr: "",
18
- });
19
- });
20
- test("main cli shows help message if -h is added after main command", async () => {
21
- await expect(execute(`${testCommand} -h`)).resolves.toEqual({
22
- error: null,
23
- stdout: `${helpMessage}\n`,
24
- stderr: "",
25
- });
26
- });
27
- test("main cli shows command not found message if invalid command is provided", async () => {
28
- await expect(execute(`${testCommand} fake-command`)).rejects.toEqual({
29
- error: new Error(`Command failed: ${testCommand} fake-command\n${noCommandFound}\n`),
30
- stdout: "",
31
- stderr: `${noCommandFound}\n`,
32
- });
33
- });
34
- test("main cli shows correct version number if --version is added after main command", async () => {
35
- await expect(execute(`${testCommand} --version`)).resolves.toEqual({
36
- error: null,
37
- stdout: `${packageVersion}\n`,
38
- stderr: "",
39
- });
40
- });
41
- test("main cli shows correct version number if -v is added after main command", async () => {
42
- await expect(execute(`${testCommand} -v`)).resolves.toEqual({
43
- error: null,
44
- stdout: `${packageVersion}\n`,
45
- stderr: "",
46
- });
47
- });
48
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=svg.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"svg.test.d.ts","sourceRoot":"","sources":["../../src/tests/svg.test.ts"],"names":[],"mappings":""}
@@ -1,60 +0,0 @@
1
- import { existsSync, unlink, readFileSync } from "node:fs";
2
- import { resolve as resolvePath, dirname as pathDirname } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { expect, test, describe, afterAll } from "vitest";
5
- import { svgHelpMessage } from "../commands/svg";
6
- import { testCommand, execute } from "../utils";
7
- // eslint-disable-next-line @typescript-eslint/naming-convention
8
- const __filename = fileURLToPath(import.meta.url);
9
- // eslint-disable-next-line @typescript-eslint/naming-convention
10
- const __dirname = pathDirname(__filename);
11
- const testSVGsIn = resolvePath(__dirname, "./svg/in");
12
- const testSVGsOut = resolvePath(__dirname, "./svg/out");
13
- describe("SVG command works as intended", () => {
14
- test("svg command correctly displays help message", async () => {
15
- await expect(execute(`${testCommand} svg --help`)).resolves.toEqual({
16
- error: null,
17
- stdout: `${svgHelpMessage}\n`,
18
- stderr: "",
19
- });
20
- });
21
- test("svg command correctly displays --in flag missing error if no flags added", async () => {
22
- const command = `${testCommand} svg`;
23
- await expect(execute(command)).rejects.toEqual({
24
- error: new Error(`Command failed: ${command}\nError: You need to provide a value for the --in flag.\n`),
25
- stdout: "",
26
- stderr: "Error: You need to provide a value for the --in flag.\n",
27
- });
28
- });
29
- test("svg command correctly displays --in flag missing error if in flag is missing", async () => {
30
- const command = `${testCommand} svg --out ${testSVGsOut}`;
31
- await expect(execute(command)).rejects.toEqual({
32
- error: new Error(`Command failed: ${command}\nError: You need to provide a value for the --in flag.\n`),
33
- stdout: "",
34
- stderr: "Error: You need to provide a value for the --in flag.\n",
35
- });
36
- });
37
- test("svg command correctly displays --out flag missing error if out flag is missing", async () => {
38
- const command = `${testCommand} svg --in ${testSVGsIn}`;
39
- await expect(execute(command)).rejects.toEqual({
40
- error: new Error(`Command failed: ${command}\nError: You need to provide a value for the --out flag.\n`),
41
- stdout: "",
42
- stderr: "Error: You need to provide a value for the --out flag.\n",
43
- });
44
- });
45
- test("svg command produces the correct svg output", async () => {
46
- await execute(`${testCommand} svg --in ${testSVGsIn} --out ${testSVGsOut}`);
47
- expect(existsSync(`${testSVGsOut}/sprite.svg`)).toBe(true);
48
- expect(readFileSync(`${testSVGsOut}/sprite.svg`, "utf8")).toBe(
49
- // spellchecker: disable-next-line
50
- '<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><symbol fill="none" viewBox="0 0 25 24" id="ArrowRight" xmlns="http://www.w3.org/2000/svg"><path d="M24.707 12.707a1 1 0 0 0 0-1.414l-6.364-6.364a1 1 0 1 0-1.414 1.414L22.586 12l-5.657 5.657a1 1 0 0 0 1.414 1.414l6.364-6.364ZM0 13h24v-2H0v2Z" fill="currentColor"/></symbol><symbol fill="none" viewBox="0 0 51 30" id="CardMastercard" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#ba)"><path d="M12.996 29.934v-1.99c0-.762-.463-1.261-1.26-1.261-.397 0-.83.131-1.127.564-.232-.363-.564-.564-1.063-.564-.332 0-.664.1-.927.464v-.398h-.695v3.185h.695v-1.759c0-.564.298-.83.761-.83.464 0 .696.297.696.83v1.76h.695v-1.76c0-.564.332-.83.761-.83.464 0 .695.297.695.83v1.76h.77Zm10.315-3.185h-1.128v-.963h-.695v.963h-.63v.63h.63v1.461c0 .73.297 1.16 1.093 1.16.297 0 .63-.1.861-.232l-.2-.6c-.201.132-.433.167-.6.167-.331 0-.463-.201-.463-.53V27.38h1.128v-.63h.004Zm5.903-.07a.943.943 0 0 0-.83.464v-.398h-.696v3.185h.696v-1.793c0-.53.231-.832.664-.832.131 0 .297.035.433.066l.2-.665c-.139-.027-.336-.027-.467-.027Zm-8.92.333c-.332-.232-.796-.333-1.294-.333-.796 0-1.325.398-1.325 1.029 0 .53.398.83 1.093.927l.332.035c.363.066.564.166.564.333 0 .232-.266.398-.73.398-.464 0-.83-.166-1.062-.333l-.333.53c.364.267.862.398 1.36.398.927 0 1.46-.433 1.46-1.028 0-.565-.432-.862-1.093-.963l-.332-.035c-.297-.034-.53-.1-.53-.297 0-.232.233-.364.6-.364.397 0 .795.166.996.267l.294-.564Zm18.5-.333a.943.943 0 0 0-.83.464v-.398h-.695v3.185h.695v-1.793c0-.53.232-.832.665-.832.131 0 .297.035.433.066l.2-.657c-.135-.035-.332-.035-.467-.035Zm-8.884 1.663c0 .962.664 1.658 1.692 1.658.463 0 .795-.1 1.128-.363l-.333-.565c-.266.201-.529.298-.83.298-.564 0-.962-.398-.962-1.029 0-.599.398-.997.962-1.028.297 0 .564.1.83.298l.333-.565c-.333-.266-.665-.363-1.128-.363-1.028-.004-1.692.696-1.692 1.659Zm6.432 0v-1.593h-.696v.398c-.231-.298-.564-.464-.996-.464-.897 0-1.592.696-1.592 1.659 0 .962.695 1.658 1.592 1.658.463 0 .796-.166.996-.464v.398h.696v-1.593Zm-2.554 0c0-.565.363-1.029.962-1.029.564 0 .962.433.962 1.029 0 .564-.398 1.028-.962 1.028-.595-.035-.962-.468-.962-1.029Zm-8.321-1.663c-.927 0-1.592.665-1.592 1.659 0 .997.665 1.658 1.627 1.658.463 0 .927-.131 1.294-.433l-.332-.499a1.578 1.578 0 0 1-.928.333c-.432 0-.861-.201-.962-.762h2.353v-.266c.031-1.025-.568-1.69-1.46-1.69Zm0 .6c.432 0 .73.266.796.76h-1.658c.066-.428.363-.76.862-.76Zm17.276 1.063v-2.854h-.695v1.659c-.232-.298-.564-.464-.997-.464-.896 0-1.592.696-1.592 1.659 0 .962.696 1.658 1.592 1.658.464 0 .796-.166.997-.464v.398h.695v-1.593Zm-2.553 0c0-.565.363-1.029.962-1.029.563 0 .961.433.961 1.029 0 .564-.398 1.028-.962 1.028-.598-.035-.962-.468-.962-1.029Zm-23.28 0v-1.593h-.696v.398c-.231-.298-.564-.464-.996-.464-.897 0-1.592.696-1.592 1.659 0 .962.695 1.658 1.592 1.658.463 0 .795-.166.996-.464v.398h.696v-1.593Zm-2.585 0c0-.565.363-1.029.962-1.029.564 0 .962.433.962 1.029 0 .564-.398 1.028-.962 1.028-.599-.035-.962-.468-.962-1.029Z" fill="#000"/><path d="M30.509 2.555H20.062v18.781H30.51V2.556Z" fill="#FF5A00"/><path d="M20.758 11.946c0-3.816 1.792-7.202 4.543-9.39A11.868 11.868 0 0 0 17.937 0C11.34 0 6 5.343 6 11.946s5.339 11.946 11.937 11.946c2.786 0 5.34-.963 7.364-2.556a11.925 11.925 0 0 1-4.543-9.39Z" fill="#EB001B"/><path d="M44.602 11.946c0 6.603-5.34 11.946-11.938 11.946-2.785 0-5.339-.963-7.363-2.556a11.884 11.884 0 0 0 4.543-9.39c0-3.816-1.793-7.202-4.543-9.39A11.849 11.849 0 0 1 32.66 0C39.262 0 44.6 5.378 44.6 11.946Z" fill="#F79E1B"/></g><defs><clipPath id="ba"><path fill="#fff" transform="translate(.5)" d="M0 0h50v30H0z"/></clipPath></defs></symbol><symbol fill="none" viewBox="0 0 24 24" id="Thumbtack" xmlns="http://www.w3.org/2000/svg"><path d="m15.115 10.155-.057-.748.057.748c.83-.063 3.136-.024 5.457 1.971l-8.446 8.446c-1.995-2.32-2.034-4.628-1.97-5.457a1.615 1.615 0 0 0-.455-1.267l-2.183-2.184a1.5 1.5 0 0 0-1.866-.205l-1.636 1.042-1.455-1.455 8.485-8.485L12.5 4.015l-1.042 1.637a1.5 1.5 0 0 0 .205 1.866L13.848 9.7c.354.355.833.487 1.267.454Z" stroke="currentColor" stroke-width="1.5"/><mask id="ca" fill="currentColor"><path d="m15.287 16.35 1.06-1.062 4.546 4.546.228 1.288-1.288-.227-4.546-4.546Z"/></mask><path d="m15.287 16.35 1.06-1.062 4.546 4.546.228 1.288-1.288-.227-4.546-4.546Z" fill="currentColor"/><path d="m15.287 16.35-1.06-1.062-1.061 1.061 1.06 1.06 1.061-1.06Zm1.06-1.062 1.061-1.06-1.06-1.06-1.06 1.06 1.06 1.06Zm4.546 4.546 1.478-.26-.082-.466-.335-.335-1.06 1.061Zm-1.06 1.06-1.06 1.062.334.334.465.082.26-1.477Zm1.288.228-.26 1.477 2.11.373-.373-2.11-1.477.26Zm-4.773-3.712 1.06-1.06-2.12-2.122-1.062 1.06 2.122 2.122Zm-1.06-1.06 4.545 4.545 2.121-2.122-4.546-4.545-2.12 2.121Zm5.605 3.484-4.545-4.545-2.122 2.12 4.546 4.547 2.122-2.122Zm-1.477.26.228 1.289 2.954-.522-.227-1.288-2.955.522Zm1.965-.45-1.288-.226-.52 2.954 1.287.227.521-2.954Z" mask="url(#ca)"/></symbol></svg>');
51
- });
52
- afterAll(() => {
53
- // Delete sprite once all tests are complete to avoid false positives on subsequent tests
54
- unlink(`${testSVGsOut}/sprite.svg`, (err) => {
55
- if (err)
56
- throw err;
57
- console.log("Successfully deleted sprite.svg");
58
- });
59
- });
60
- });