Skip to content

Commit d0cf148

Browse files
committed
chore: upgrade all dependencies, add Docker CI, fix breaking changes
## Dependency Upgrades - Update all packages to latest via pnpm update --latest - vue 3.3.4 -> 3.5.34, vite 4.4.9 -> 8.0.13, pinia 2.0.34 -> 3.0.4 - vue-router 4.1.6 -> 5.0.7, vue-i18n 9.9.1 -> 11.4.4 - typescript 5.2 -> 6.0, eslint 8.47 -> 10.4, vitest 0.34 -> 4.1 - unocss 0.65 -> 66.6, @playwright/test 1.32 -> 1.60, etc. - Remove deprecated stub type packages (@types/bcryptjs, @types/dompurify, @types/uuid) - Remove plausible-tracker (deprecated npm package) - Replace figue with native import.meta.env (v3 is broken - infinite recursion) - Migrate vite-plugin-vue-markdown -> unplugin-vue-markdown ## Breaking Change Fixes - Pinia: convert style.store.ts from options API to setup() pattern (pinia v3) - Vue-router: update catch-all syntax /:pathMatch(.*)* -> /:pathMatch(.*) (v5) - change-case: headerCase/paramCase removed, use kebabCase + local headerCase - jwt-decode: default import -> named { jwtDecode } (v4) - PWA: increase maximumFileSizeToCacheInBytes to 10MB for Monaco workers ## Docker & CI - nginx.conf: listen on port 8080 instead of 80 - Dockerfile: EXPOSE 8080, fix ENV key=value format - ci.yml: add Docker build job (build-only validation on PRs/push) - Update all Docker targets to shahboura/it-tools (Docker Hub + GHCR) ## ESLint Migration - Migrate .eslintrc.cjs -> eslint.config.mjs (ESLint 10 flat config) - Disable overzealous regexp rules that break working ISO 8601/Unicode regexes - Add unused-imports/no-unused-vars with _ prefix ignore - Auto-fix 599 formatting issues (import ordering, trailing commas, indentation) ## I18n - Add missing translation keys for 8 tools (ascii-text-drawer, email-normalizer, json-to-xml, markdown-to-html, regex-memo, regex-tester, safelink-decoder, xml-to-json) - Update all locale YAML files with new keys ## Test & Build - Vitest: add environment: 'jsdom' to config (vitest 4.x requirement) - All 138 tests pass, 0 lint errors, build succeeds
1 parent d505845 commit d0cf148

278 files changed

Lines changed: 8321 additions & 8508 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.eslintrc-auto-import.json

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,21 @@
33
"Component": true,
44
"ComponentPublicInstance": true,
55
"ComputedRef": true,
6+
"DirectiveBinding": true,
67
"EffectScope": true,
8+
"ExtractDefaultPropTypes": true,
9+
"ExtractPropTypes": true,
10+
"ExtractPublicPropTypes": true,
711
"InjectionKey": true,
12+
"MaybeRef": true,
13+
"MaybeRefOrGetter": true,
814
"PropType": true,
915
"Ref": true,
16+
"ShallowRef": true,
17+
"Slot": true,
18+
"Slots": true,
1019
"VNode": true,
20+
"WritableComputedRef": true,
1121
"asyncComputed": true,
1222
"autoResetRef": true,
1323
"computed": true,
@@ -18,10 +28,12 @@
1828
"controlledComputed": true,
1929
"controlledRef": true,
2030
"createApp": true,
31+
"createDisposableDirective": true,
2132
"createEventHook": true,
2233
"createGlobalState": true,
2334
"createInjectionState": true,
2435
"createReactiveFn": true,
36+
"createRef": true,
2537
"createReusableTemplate": true,
2638
"createSharedComposable": true,
2739
"createTemplatePromise": true,
@@ -36,14 +48,17 @@
3648
"extendRef": true,
3749
"getCurrentInstance": true,
3850
"getCurrentScope": true,
51+
"getCurrentWatcher": true,
3952
"h": true,
4053
"ignorableWatch": true,
4154
"inject": true,
55+
"injectLocal": true,
4256
"isDefined": true,
4357
"isProxy": true,
4458
"isReactive": true,
4559
"isReadonly": true,
4660
"isRef": true,
61+
"isShallow": true,
4762
"makeDestructurable": true,
4863
"markRaw": true,
4964
"nextTick": true,
@@ -55,6 +70,7 @@
5570
"onBeforeUpdate": true,
5671
"onClickOutside": true,
5772
"onDeactivated": true,
73+
"onElementRemoval": true,
5874
"onErrorCaptured": true,
5975
"onKeyStroke": true,
6076
"onLongPress": true,
@@ -66,8 +82,10 @@
6682
"onStartTyping": true,
6783
"onUnmounted": true,
6884
"onUpdated": true,
85+
"onWatcherCleanup": true,
6986
"pausableWatch": true,
7087
"provide": true,
88+
"provideLocal": true,
7189
"reactify": true,
7290
"reactifyObject": true,
7391
"reactive": true,
@@ -79,11 +97,10 @@
7997
"refAutoReset": true,
8098
"refDebounced": true,
8199
"refDefault": true,
100+
"refManualReset": true,
82101
"refThrottled": true,
83102
"refWithControl": true,
84103
"resolveComponent": true,
85-
"resolveRef": true,
86-
"resolveUnref": true,
87104
"shallowReactive": true,
88105
"shallowReadonly": true,
89106
"shallowRef": true,
@@ -96,6 +113,7 @@
96113
"toReactive": true,
97114
"toRef": true,
98115
"toRefs": true,
116+
"toValue": true,
99117
"triggerRef": true,
100118
"tryOnBeforeMount": true,
101119
"tryOnBeforeUnmount": true,
@@ -130,11 +148,14 @@
130148
"useBrowserLocation": true,
131149
"useCached": true,
132150
"useClipboard": true,
151+
"useClipboardItems": true,
133152
"useCloned": true,
134153
"useColorMode": true,
135154
"useConfirmDialog": true,
155+
"useCountdown": true,
136156
"useCounter": true,
137157
"useCssModule": true,
158+
"useCssSupports": true,
138159
"useCssVar": true,
139160
"useCssVars": true,
140161
"useCurrentElement": true,
@@ -173,6 +194,7 @@
173194
"useGamepad": true,
174195
"useGeolocation": true,
175196
"useI18n": true,
197+
"useId": true,
176198
"useIdle": true,
177199
"useImage": true,
178200
"useInfiniteScroll": true,
@@ -191,6 +213,7 @@
191213
"useMemoize": true,
192214
"useMemory": true,
193215
"useMessage": true,
216+
"useModel": true,
194217
"useMounted": true,
195218
"useMouse": true,
196219
"useMouseInElement": true,
@@ -216,12 +239,14 @@
216239
"usePreferredDark": true,
217240
"usePreferredLanguages": true,
218241
"usePreferredReducedMotion": true,
242+
"usePreferredReducedTransparency": true,
219243
"usePrevious": true,
220244
"useRafFn": true,
221245
"useRefHistory": true,
222246
"useResizeObserver": true,
223247
"useRoute": true,
224248
"useRouter": true,
249+
"useSSRWidth": true,
225250
"useScreenOrientation": true,
226251
"useScreenSafeArea": true,
227252
"useScriptTag": true,
@@ -239,6 +264,7 @@
239264
"useStyleTag": true,
240265
"useSupported": true,
241266
"useSwipe": true,
267+
"useTemplateRef": true,
242268
"useTemplateRefsList": true,
243269
"useTextDirection": true,
244270
"useTextSelection": true,
@@ -247,6 +273,7 @@
247273
"useThrottleFn": true,
248274
"useThrottledRefHistory": true,
249275
"useTimeAgo": true,
276+
"useTimeAgoIntl": true,
250277
"useTimeout": true,
251278
"useTimeoutFn": true,
252279
"useTimeoutPoll": true,
@@ -285,7 +312,6 @@
285312
"watchThrottled": true,
286313
"watchTriggerable": true,
287314
"watchWithFilter": true,
288-
"whenever": true,
289-
"toValue": true
315+
"whenever": true
290316
}
291317
}

.eslintrc.cjs

Lines changed: 0 additions & 21 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,27 @@ jobs:
3232

3333
- name: Build the app
3434
run: pnpm build
35+
36+
docker:
37+
runs-on: ubuntu-latest
38+
needs: ci
39+
40+
steps:
41+
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
42+
43+
- name: Set up QEMU
44+
uses: docker/setup-qemu-action@v3
45+
46+
- name: Set up Docker Buildx
47+
uses: docker/setup-buildx-action@v3
48+
49+
- name: Build Docker image
50+
uses: docker/build-push-action@v5
51+
with:
52+
context: .
53+
file: ./Dockerfile
54+
platforms: linux/amd64,linux/arm64
55+
push: false
56+
tags: it-tools:ci
57+
cache-from: type=gha
58+
cache-to: type=gha,mode=max

.github/workflows/docker-nightly-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,5 @@ jobs:
8383
platforms: linux/amd64,linux/arm64
8484
push: true
8585
tags: |
86-
corentinth/it-tools:nightly
87-
ghcr.io/corentinth/it-tools:nightly
86+
shahboura/it-tools:nightly
87+
ghcr.io/shahboura/it-tools:nightly

.github/workflows/releases.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ jobs:
4242
platforms: linux/amd64,linux/arm64
4343
push: true
4444
tags: |
45-
corentinth/it-tools:latest
46-
corentinth/it-tools:${{ env.RELEASE_VERSION }}
47-
ghcr.io/corentinth/it-tools:latest
48-
ghcr.io/corentinth/it-tools:${{ env.RELEASE_VERSION}}
45+
shahboura/it-tools:latest
46+
shahboura/it-tools:${{ env.RELEASE_VERSION }}
47+
ghcr.io/shahboura/it-tools:latest
48+
ghcr.io/shahboura/it-tools:${{ env.RELEASE_VERSION}}
4949
5050
github-release:
5151
runs-on: ubuntu-latest
@@ -93,11 +93,11 @@ jobs:
9393
## Docker images
9494
9595
- Docker Hub
96-
- `corentinth/it-tools:latest`
97-
- `corentinth/it-tools:${{ env.RELEASE_VERSION }}`
96+
- `shahboura/it-tools:latest`
97+
- `shahboura/it-tools:${{ env.RELEASE_VERSION }}`
9898
- GitHub Container Registry
99-
- `ghcr.io/corentinth/it-tools:latest`
100-
- `ghcr.io/corentinth/it-tools:${{ env.RELEASE_VERSION}}`
99+
- `ghcr.io/shahboura/it-tools:latest`
100+
- `ghcr.io/shahboura/it-tools:${{ env.RELEASE_VERSION}}`
101101
102102
## Changelog
103103

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# build stage
22
FROM node:lts-alpine AS build-stage
33
# Set environment variables for non-interactive npm installs
4-
ENV NPM_CONFIG_LOGLEVEL warn
5-
ENV CI true
4+
ENV NPM_CONFIG_LOGLEVEL=warn
5+
ENV CI=true
66
WORKDIR /app
77
COPY package.json pnpm-lock.yaml ./
88
RUN npm install -g pnpm && pnpm i --frozen-lockfile
@@ -13,5 +13,5 @@ RUN pnpm build
1313
FROM nginx:stable-alpine AS production-stage
1414
COPY --from=build-stage /app/dist /usr/share/nginx/html
1515
COPY nginx.conf /etc/nginx/conf.d/default.conf
16-
EXPOSE 80
16+
EXPOSE 8080
1717
CMD ["nginx", "-g", "daemon off;"]

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ Useful tools for developer and people working in IT. <a href="https://it-tools.t
1010

1111
## Functionalities and roadmap
1212

13-
Please check the [issues](https://github.com/CorentinTh/it-tools/issues) to see if some feature listed to be implemented.
13+
Please check the [issues](https://github.com/shahboura/it-tools/issues) to see if some feature listed to be implemented.
1414

15-
You have an idea of a tool? Submit a [feature request](https://github.com/CorentinTh/it-tools/issues/new/choose)!
15+
You have an idea of a tool? Submit a [feature request](https://github.com/shahboura/it-tools/issues/new/choose)!
1616

1717
## Self host
1818

@@ -21,13 +21,13 @@ Self host solutions for your homelab
2121
**From docker hub:**
2222

2323
```sh
24-
docker run -d --name it-tools --restart unless-stopped -p 8080:80 corentinth/it-tools:latest
24+
docker run -d --name it-tools --restart unless-stopped -p 8080:80 shahboura/it-tools:latest
2525
```
2626

2727
**From github packages:**
2828

2929
```sh
30-
docker run -d --name it-tools --restart unless-stopped -p 8080:80 ghcr.io/corentinth/it-tools:latest
30+
docker run -d --name it-tools --restart unless-stopped -p 8080:80 ghcr.io/shahboura/it-tools:latest
3131
```
3232

3333
**Other solutions:**
@@ -115,15 +115,15 @@ It will create a directory in `src/tools` with the correct files, and a the impo
115115

116116
Big thanks to all the people who have already contributed!
117117

118-
[![contributors](https://contrib.rocks/image?repo=corentinth/it-tools&refresh=1)](https://github.com/corentinth/it-tools/graphs/contributors)
118+
[![contributors](https://contrib.rocks/image?repo=shahboura/it-tools&refresh=1)](https://github.com/shahboura/it-tools/graphs/contributors)
119119

120120
## Credits
121121

122122
Coded with ❤️ by [Corentin Thomasset](https://corentin.tech?utm_source=it-tools&utm_medium=readme).
123123

124124
This project is continuously deployed using [vercel.com](https://vercel.com).
125125

126-
Contributor graph is generated using [contrib.rocks](https://contrib.rocks/preview?repo=corentinth/it-tools).
126+
Contributor graph is generated using [contrib.rocks](https://contrib.rocks/preview?repo=shahboura/it-tools).
127127

128128
<a href="https://www.producthunt.com/posts/it-tools?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-it&#0045;tools" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=345793&theme=light" alt="IT&#0032;Tools - Collection&#0032;of&#0032;handy&#0032;online&#0032;tools&#0032;for&#0032;devs&#0044;&#0032;with&#0032;great&#0032;UX | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
129129
<a href="https://www.producthunt.com/posts/it-tools?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-it&#0045;tools" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=345793&theme=light&period=daily" alt="IT&#0032;Tools - Collection&#0032;of&#0032;handy&#0032;online&#0032;tools&#0032;for&#0032;devs&#0044;&#0032;with&#0032;great&#0032;UX | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>

0 commit comments

Comments
 (0)