Skip to content
Open
Show file tree
Hide file tree
Changes from 31 commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
9dc75de
Update github actions
Knight1 Feb 6, 2026
3c83cf7
Add dependabot
Knight1 Feb 6, 2026
d1bb9c8
fix readme ASF Format
Knight1 Feb 6, 2026
c54d310
build(deps): bump actions/setup-node from 4 to 6
dependabot[bot] Feb 6, 2026
851f647
build(deps-dev): bump @rollup/plugin-replace from 6.0.2 to 6.0.3
dependabot[bot] Feb 6, 2026
910135f
build(deps-dev): bump @rollup/plugin-babel from 6.0.4 to 6.1.0
dependabot[bot] Feb 6, 2026
9cb3c41
build(deps-dev): bump prettier from 3.5.3 to 3.8.1
dependabot[bot] Feb 6, 2026
74328a5
build(deps-dev): bump rollup-plugin-userscript from 0.3.7 to 1.1.0
dependabot[bot] Feb 6, 2026
1c21fbd
Merge pull request #1 from Knight1/dependabot/github_actions/actions/…
Knight1 Feb 6, 2026
f957485
Merge pull request #3 from Knight1/dependabot/npm_and_yarn/rollup/plu…
Knight1 Feb 6, 2026
299f1e6
Merge pull request #4 from Knight1/dependabot/npm_and_yarn/rollup/plu…
Knight1 Feb 6, 2026
91a54ef
Merge pull request #5 from Knight1/dependabot/npm_and_yarn/prettier-3…
Knight1 Feb 6, 2026
4ec2482
fix corrupted lock file
Knight1 Feb 6, 2026
d541247
build(deps-dev): bump @eslint/js from 9.26.0 to 9.39.2
dependabot[bot] Feb 6, 2026
a9027dc
Merge pull request #9 from Knight1/dependabot/npm_and_yarn/eslint/js-…
Knight1 Feb 6, 2026
e78898c
Merge pull request #6 from Knight1/dependabot/npm_and_yarn/rollup-plu…
Knight1 Feb 6, 2026
c04f735
restrict permissions on lint.yaml
Knight1 Feb 6, 2026
a55e24b
Update Node
Knight1 Feb 6, 2026
a4af94a
use ubuntu-slim for the linter
Knight1 Feb 6, 2026
e200efc
fix lockfile again
Knight1 Feb 6, 2026
8ffb4f1
pnpm update --latest
Knight1 Feb 6, 2026
7d5e61a
Add v0.4.1
Knight1 Feb 6, 2026
e10fd66
Add Build instructions
Knight1 Feb 6, 2026
27c6e73
Update node version on linter
Knight1 Feb 6, 2026
ece4f76
Ditch vulnerable conventional-changelog and use changelogen with less…
Knight1 Feb 6, 2026
d8d9b8f
pnpm version will print the version instead of using the scripts
Knight1 Feb 6, 2026
5ab6711
Code now tracks permanent errors on keys *(expired for now), shows cl…
Knight1 Feb 6, 2026
7ffdab5
if the key_type is gog_keyless or epic_keyless it will for now just c…
Knight1 Feb 6, 2026
531d4b3
do not export keysless keys into csv. It will contain just contain [o…
Knight1 Feb 6, 2026
d661819
Add csv Escapes since game names can include "," which breaks the csv…
Knight1 Feb 6, 2026
411c44d
Add CHANGELOG
Knight1 Feb 6, 2026
9a7e71f
just use current LTS in linter
Knight1 Feb 6, 2026
ea71d5c
Update src/components/Actions.tsx
Knight1 Feb 6, 2026
cd8f449
Merge branch 'main' of https://github.com/Knight1/hb-key-exporter
Knight1 Feb 6, 2026
363a3ed
Merge branch 'main' into main
Knight1 Feb 6, 2026
f57c375
use implicit return
Knight1 Feb 6, 2026
d732a66
build(deps-dev): bump @eslint/js from 9.39.2 to 9.39.3
dependabot[bot] Feb 27, 2026
9f25005
build(deps-dev): bump typescript-eslint from 8.54.0 to 8.56.1
dependabot[bot] Feb 27, 2026
ba9d5f3
build(deps-dev): bump rollup from 4.57.1 to 4.59.0
dependabot[bot] Feb 27, 2026
ded9429
Merge pull request #12 from Knight1/dependabot/npm_and_yarn/eslint/js…
Knight1 Mar 9, 2026
edf88ae
Merge pull request #13 from Knight1/dependabot/npm_and_yarn/typescrip…
Knight1 Mar 9, 2026
db736ef
Merge pull request #14 from Knight1/dependabot/npm_and_yarn/rollup-4.…
Knight1 Mar 9, 2026
9f90385
build(deps-dev): bump @rollup/plugin-babel from 6.1.0 to 7.0.0
dependabot[bot] Mar 9, 2026
8b6d696
build(deps-dev): bump lint-staged from 16.2.7 to 16.3.2
dependabot[bot] Mar 9, 2026
8b2498c
Merge pull request #15 from Knight1/dependabot/npm_and_yarn/rollup/pl…
Knight1 Mar 9, 2026
63a73a6
Merge pull request #16 from Knight1/dependabot/npm_and_yarn/lint-stag…
Knight1 Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Weird, I have dependabot enabled in the settings it shouldn't need the config file, but let's keep it

Image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without the dependabot.yml it does nothing.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
12 changes: 7 additions & 5 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,25 @@ on:
pull_request:
branches: ['main']

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
runs-on: ubuntu-slim
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Uh nice

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This uses a container instead of a full vm. I think for linting this is just fine.


strategy:
matrix:
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
node-version: [20.x, 22.x, 24.x, 25.x]

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Use Node.js 20.x
uses: actions/setup-node@v4
- name: Use Node.js 24.x
uses: actions/setup-node@v6
with:
node-version: 20.x
node-version: 24.x
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
Expand Down
32 changes: 29 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,35 @@
# [0.5.0](https://github.com/MrMarble/hb-key-exporter/compare/v0.4.1...v0.5.0) (TBD)

### Features

* Track permanent errors (for now expired keys) and do not try to redeem those keys again since it will fail again
* Add build instructions to README
* If the clipboard is blocked the code now caches the export and shows a button to export again which unlocks the clipboard
* CSV is now properly escaped if a game's human_name contains "," which breaks the csv

### Changed

* Updated CI with matrix and latest node versions
* Changed Changelog generator to changelogen since the old one contained a dependency with a known vulnerability
* Updated all dependencies
* Do not export keyless keys into keys and csv
* Do not redeem keyless keys since this tool is for exporting keys and keyless means no keys to export

by @Knight1

# [0.4.1](https://github.com/MrMarble/hb-key-exporter/compare/v0.4.0...v0.4.1) (2026-02-05)

### Bug Fixes

* Fixed ASF export output format by @Knight1 in #6


# [0.4.0](https://github.com/MrMarble/hb-key-exporter/compare/v0.3.0...v0.4.0) (2025-05-31)


### Features

* **cvs:** allow setting a custom separator ([#2](https://github.com/MrMarble/hb-key-exporter/issues/2)) ([30aaff5](https://github.com/MrMarble/hb-key-exporter/commit/30aaff5848797c15c40e6e55599412c366049324))
* **csv:** allow setting a custom separator ([#2](https://github.com/MrMarble/hb-key-exporter/issues/2)) ([30aaff5](https://github.com/MrMarble/hb-key-exporter/commit/30aaff5848797c15c40e6e55599412c366049324))



Expand All @@ -12,7 +38,7 @@

### Bug Fixes

* set container to max with ([b1404bd](https://github.com/MrMarble/hb-key-exporter/commit/b1404bd41b4b6d234789abfba237211153ceb4a1))
* set container to max width ([b1404bd](https://github.com/MrMarble/hb-key-exporter/commit/b1404bd41b4b6d234789abfba237211153ceb4a1))


### Features
Expand Down Expand Up @@ -51,7 +77,7 @@

### Features

* add uptate urls to meta ([6068fbf](https://github.com/MrMarble/hb-key-exporter/commit/6068fbfb6911a91b9a2caa41850d26d0b7fad948))
* add update urls to meta ([6068fbf](https://github.com/MrMarble/hb-key-exporter/commit/6068fbfb6911a91b9a2caa41850d26d0b7fad948))



Expand Down
11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Userscript to assist in key management for Humble Bundle games.
- Advanced filtering options
- Export in various formats:
- CSV (all data)
- ASF (`<key> <name>`)
- ASF (`<name> <key>`)
- TXT (`<key>`)
- Reveal hidden keys
- Create Gift links
Expand All @@ -30,6 +30,15 @@ Userscript to assist in key management for Humble Bundle games.

Go to Humble Bundle [keys page](https://www.humblebundle.com/home/keys), open the collapsible menu by clicking on the `Advanced Exporter` at the top of the main section.

### Build

To build the userscript locally, make sure you have [pnpm](https://pnpm.io/) installed, then run:

```bash
pnpm install
pnpm build
```

## Troubleshooting

Humble bundle will load all your keys into the `localStorage` of your browser. This userscript will read the keys from there. If you have a lot of keys, it may take a while to load them all the first time, leave the page open for a minute or two, you can refresh the list by clicking the `Refresh` button on the right or just reload the page.
58 changes: 29 additions & 29 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hb-key-exporter",
"version": "0.4.0",
"version": "0.4.1",
"description": "Userscript that aids in exporting Humble Bundle keys from the Humble Bundle website.",
"type": "module",
"private": true,
Expand All @@ -17,43 +17,43 @@
"ci": "run-s lint",
"build:js": "rollup -c",
"build": "cross-env NODE_ENV=production run-s ci clean build:js",
"version": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md"
"changelog": "changelogen"
},
"author": {
"name": "MrMarble"
},
"license": "MIT",
"devDependencies": {
"@babel/plugin-transform-runtime": "^7.27.1",
"@babel/preset-env": "^7.27.1",
"@babel/preset-typescript": "^7.27.1",
"@eslint/js": "^9.26.0",
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-commonjs": "^28.0.3",
"@babel/plugin-transform-runtime": "^7.29.0",
"@babel/preset-env": "^7.29.0",
"@babel/preset-typescript": "^7.28.5",
"@eslint/js": "^9.39.2",
"@rollup/plugin-babel": "^6.1.0",
"@rollup/plugin-commonjs": "^29.0.0",
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^16.0.1",
"@rollup/plugin-replace": "^6.0.2",
"@violentmonkey/types": "^0.2.1",
"babel-preset-solid": "^1.9.6",
"conventional-changelog-cli": "^5.0.0",
"cross-env": "^7.0.3",
"datatables.net-dt": "^2.3.0",
"del-cli": "^6.0.0",
"eslint": "^9.26.0",
"eslint-config-prettier": "^10.1.2",
"globals": "^16.0.0",
"@rollup/plugin-node-resolve": "^16.0.3",
"@rollup/plugin-replace": "^6.0.3",
"@violentmonkey/types": "^0.3.2",
"babel-preset-solid": "^1.9.10",
"changelogen": "^0.6.2",
"cross-env": "^10.1.0",
"datatables.net-dt": "^2.3.7",
"del-cli": "^7.0.0",
"eslint": "^9.39.2",
"eslint-config-prettier": "^10.1.8",
"globals": "^17.3.0",
"husky": "^9.1.7",
"lint-staged": "^15.5.1",
"lint-staged": "^16.2.7",
"lz-string": "^1.5.0",
"npm-run-all": "^4.1.5",
"postcss": "^8.5.3",
"prettier": "^3.5.3",
"read-package-up": "^11.0.0",
"rollup": "^4.40.1",
"postcss": "^8.5.6",
"prettier": "^3.8.1",
"read-package-up": "^12.0.0",
"rollup": "^4.57.1",
"rollup-plugin-postcss": "^4.0.2",
"rollup-plugin-userscript": "^0.3.7",
"typescript": "^5.8.3",
"typescript-eslint": "^8.32.0"
"rollup-plugin-userscript": "^1.1.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.54.0"
},
"lint-staged": {
"*.{ts,tsx}": [
Expand All @@ -65,9 +65,9 @@
]
},
"dependencies": {
"@babel/runtime": "^7.27.1",
"@babel/runtime": "^7.28.6",
"@violentmonkey/dom": "^2.2.1",
"@violentmonkey/ui": "^0.7.9",
"solid-js": "^1.9.6"
"solid-js": "^1.9.11"
}
}
Loading