@purpleproser/soundboard-downloader-cli 1.1.1 → 1.2.2

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.
@@ -0,0 +1,24 @@
1
+ name: 📦️ Publish to NPM
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ permissions:
9
+ id-token: write # Required for OIDC
10
+ contents: read
11
+
12
+ jobs:
13
+ publish:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - uses: actions/setup-node@v4
19
+ with:
20
+ node-version: "24"
21
+ registry-url: "https://registry.npmjs.org"
22
+ - run: npm ci
23
+ - run: npm run build --if-present
24
+ - run: npm publish
@@ -0,0 +1,25 @@
1
+ name: ➡️ Release please
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ permissions:
9
+ contents: write
10
+ issues: write
11
+ pull-requests: write
12
+
13
+ jobs:
14
+ release-please:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: googleapis/release-please-action@v4
18
+ with:
19
+ # this assumes that you have created a personal access token
20
+ # (PAT) and configured it as a GitHub action secret named
21
+ # `MY_RELEASE_PLEASE_TOKEN` (this secret name is not important).
22
+ token: ${{ secrets.MY_RELEASE_PLEASE_TOKEN }}
23
+ # this is a built-in strategy in release-please, see "Action Inputs"
24
+ # for more options
25
+ release-type: node
@@ -0,0 +1,24 @@
1
+ name: 🧪 Run Tests
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [main]
6
+
7
+ jobs:
8
+ test:
9
+ name: Run tests
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ - uses: actions/setup-node@v4
16
+ with:
17
+ node-version: 20
18
+ cache: "npm"
19
+
20
+ - name: Install dependencies
21
+ run: npm install
22
+
23
+ - name: Run tests
24
+ run: npm test
package/CHANGELOG.md ADDED
@@ -0,0 +1,73 @@
1
+ # Changelog
2
+
3
+ This changelog is automatically generated by [release-please](https://github.com/google-github-actions/release-please-action).
4
+
5
+ ## [1.2.2](https://github.com/blacksagres/soundboard-downloader-cli/compare/v1.2.1...v1.2.2) (2026-02-15)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * prevent tests from running until fixed ([2da9ad1](https://github.com/blacksagres/soundboard-downloader-cli/commit/2da9ad1e3616dddb4868babde7c39a97f92a2c30))
11
+ * use the correct yml file for publishing to npm ([364cbb8](https://github.com/blacksagres/soundboard-downloader-cli/commit/364cbb8fe95456fb036d90a1a8bd014bccc7cea7))
12
+
13
+ ## [1.2.1](https://github.com/blacksagres/soundboard-downloader-cli/compare/v1.2.0...v1.2.1) (2026-02-15)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * configure trusted publisher in npm and adjust the publish file ([8cbddce](https://github.com/blacksagres/soundboard-downloader-cli/commit/8cbddce0b6e80ce099bd848aef855d5e27abbc18))
19
+
20
+ ## [1.2.0](https://github.com/blacksagres/soundboard-downloader-cli/compare/v1.1.1...v1.2.0) (2026-02-15)
21
+
22
+
23
+ ### Features
24
+
25
+ * add new option to display url ([51758d3](https://github.com/blacksagres/soundboard-downloader-cli/commit/51758d3c26602a649f5172a8dcb31981f5e7bc89))
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * add correct release type to config ([737d1b9](https://github.com/blacksagres/soundboard-downloader-cli/commit/737d1b925ccaae715061a2023470e0f3d7534688))
31
+ * handle potential undefined from file name generation ([484129f](https://github.com/blacksagres/soundboard-downloader-cli/commit/484129f79da05d56edee650c320fcc82cf81d042))
32
+ * make vitest ignore files outside src ([7313579](https://github.com/blacksagres/soundboard-downloader-cli/commit/7313579f62f482bbd069da7de539f10697e2de83))
33
+ * prevent shipping declaration files in the package ([fad7dc7](https://github.com/blacksagres/soundboard-downloader-cli/commit/fad7dc76c1b916a5becfa9677a486821b75c9792))
34
+ * prevent test files from being added to build ([268b43f](https://github.com/blacksagres/soundboard-downloader-cli/commit/268b43fb788d7f9438b2473c4376349aa27e446b))
35
+ * remove prepare script ([362e823](https://github.com/blacksagres/soundboard-downloader-cli/commit/362e823434f368bede87541d9fef3e70ca260343))
36
+ * unblock other workflows until I know what's wrong with the test ([9f8c092](https://github.com/blacksagres/soundboard-downloader-cli/commit/9f8c092c6086cbbaaec087ae1de02dc47f5c954d))
37
+
38
+ ## v1.0.1 (2024-02-14)
39
+
40
+ ### Features
41
+
42
+ - **download**: simplify download location to use current working directory
43
+
44
+ ### Bug Fixes
45
+
46
+ - **publish**: fix scoped package publishing with public access config
47
+ - **deps**: remove unused @types/node dependency
48
+
49
+ ### Documentation
50
+
51
+ - **readme**: update with clear download location examples
52
+ - **readme**: add npm scope vs GitHub username explanation
53
+ - **changelog**: add comprehensive change tracking
54
+ - **release**: add management guide for future releases
55
+
56
+ ### Chores
57
+
58
+ - **ci**: set up GitHub Actions for automated releases
59
+ - **config**: add release-please workflow
60
+
61
+ ## v1.0.0 (2024-02-14)
62
+
63
+ ### Features(v1.0.0)
64
+
65
+ - **core**: initial implementation with MyInstants API integration
66
+ - **cli**: interactive interface with @inquirer/prompts
67
+ - **download**: sound download with progress indicators
68
+ - **playback**: browser playback option using open package
69
+
70
+ ### Documentation(v1.0.0)
71
+
72
+ - **readme**: initial setup and usage instructions
73
+ - **license**: add MIT license file
package/dist/main.js CHANGED
@@ -12,7 +12,7 @@ process.on("uncaughtException", (error) => {
12
12
  }
13
13
  else {
14
14
  // Rethrow unknown errors
15
- throw error;
15
+ console.error(error);
16
16
  }
17
17
  });
18
18
  (async function () {
@@ -49,11 +49,18 @@ process.on("uncaughtException", (error) => {
49
49
  name: "Play",
50
50
  value: "action:play",
51
51
  },
52
+ {
53
+ name: "Show download URL (you can pipe this to other commands)",
54
+ value: "action:show-url",
55
+ },
52
56
  ];
53
57
  const action = await (0, prompts_1.select)({
54
58
  message: `Selected: ${label}`,
55
59
  choices: actions,
56
60
  });
61
+ if (action === "action:show-url") {
62
+ console.log(downloadUrl);
63
+ }
57
64
  if (action === "action:play") {
58
65
  (0, open_1.default)(downloadUrl);
59
66
  }
@@ -64,6 +71,9 @@ process.on("uncaughtException", (error) => {
64
71
  spinner: "growHorizontal",
65
72
  }).start();
66
73
  const downloadFileName = downloadUrl.split("/").pop();
74
+ if (!downloadFileName) {
75
+ throw new ReferenceError(`Could not find download file name for: [${downloadUrl}], could it be a malformed link?`);
76
+ }
67
77
  // Download directly to current working directory
68
78
  (0, file_downloader_service_1.downloadFile)(downloadUrl, {
69
79
  destination: downloadFileName,
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AAEA,uEAA8D;AAC9D,6BAAsB;AACtB,+CAAkD;AAClD,+BAAwB;AACxB,+EAAiE;AAEjE,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;IACxC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,yBAAyB;QACzB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,CAAC,KAAK;IACJ,MAAM,MAAM,GAAG,MAAM,IAAA,eAAK,EAAC;QACzB,OAAO,EAAE,yCAAyC;QAClD,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,gBAAgB;KAC1B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC;QAClB,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEX,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAa,EAAC,MAAM,CAAC,CAAC;IAE3C,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,MAAM,SAAS,GAAG,MAAM,IAAA,gBAAM,EAAC;QAC7B,OAAO,EACL,6FAA6F;QAE/F,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,KAAK,CAAC,KAAK;YACjB,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,YAAY,EAAW;SACxD,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,cAAc,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,OAAO,GAAG;QACd;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,iBAAiB;SACzB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,aAAa;SACrB;KACO,CAAC;IAEX,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAM,EAAC;QAC1B,OAAO,EAAE,aAAa,KAAK,EAAE;QAC7B,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,IAAA,cAAI,EAAC,WAAW,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,IAAA,aAAG,EAAC;YAC1B,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC,KAAK,EAAE,CAAC;QAEX,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAEtD,iDAAiD;QACjD,IAAA,sCAAY,EAAC,WAAW,EAAE;YACxB,WAAW,EAAE,gBAAiB;YAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE;YACtC,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleproser/soundboard-downloader-cli",
3
- "version": "1.1.1",
3
+ "version": "1.2.2",
4
4
  "description": "Easily download sounds from myinstants.com using this interactive CLI tool",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -13,10 +13,9 @@
13
13
  "soundboard-downloader": "./dist/main.js"
14
14
  },
15
15
  "scripts": {
16
- "test": "echo \"Error: no test specified\" && exit 1",
16
+ "test": "vitest",
17
17
  "start": "ts-node ./src/main.ts",
18
- "build": "tsc",
19
- "prepare": "npm run build",
18
+ "build": "tsc -p tsconfig.prod.json",
20
19
  "prepublishOnly": "npm run build"
21
20
  },
22
21
  "keywords": [
@@ -38,7 +37,8 @@
38
37
  "devDependencies": {
39
38
  "@types/jsdom": "^27.0.0",
40
39
  "ts-node": "^10.9.2",
41
- "typescript": "^5.9.3"
40
+ "typescript": "^5.9.3",
41
+ "vitest": "^4.0.18"
42
42
  },
43
43
  "dependencies": {
44
44
  "@inquirer/prompts": "^8.2.0",
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "./tsconfig",
3
+ "exclude": ["**/*.test.ts", "**/*.mock.ts"],
4
+ "compilerOptions": {
5
+ "declaration": false,
6
+ "declarationMap": false
7
+ }
8
+ }
package/vite.config.js ADDED
@@ -0,0 +1,7 @@
1
+ import { defineConfig } from "vitest/config";
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ exclude: ["**/node_modules/**", "**/dist/**", "./temp/**"],
6
+ },
7
+ });
Binary file