diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fcd9738..56c6955 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,23 +24,16 @@ jobs: with: fetch-depth: 0 - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: '22' - - - name: Cache pnpm modules - uses: actions/cache@v2 + - uses: pnpm/action-setup@v4 with: - path: ~/.pnpm-store - key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}- + version: 10 + run_install: true - - uses: pnpm/action-setup@v2 + - name: Setup Node.js + uses: actions/setup-node@v4 with: - version: 9 - run_install: true + node-version: '22' + cache: 'pnpm' - name: Build client working-directory: packages/client/ @@ -52,7 +45,7 @@ jobs: # install app again to respect shamefully hoisted dependencies - name: Build app - working-directory: packages/app/ + working-directory: packages/web/ run: | pnpm install pnpm build @@ -92,24 +85,17 @@ jobs: git config --global user.name "$(git --no-pager log --format=format:'%an' -n 1)" git config --global user.email "$(git --no-pager log --format=format:'%ae' -n 1)" + - uses: pnpm/action-setup@v4 + with: + version: 10 + run_install: true + - name: Setup Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: '22' registry-url: 'https://registry.npmjs.org' - - - name: Cache pnpm modules - uses: actions/cache@v2 - with: - path: ~/.pnpm-store - key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}- - - - uses: pnpm/action-setup@v2 - with: - version: 9 - run_install: true + cache: 'pnpm' - name: Build working-directory: packages/client/ diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index dd2f71d..934f06b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,23 +17,16 @@ jobs: with: fetch-depth: 0 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: '22' - - - name: Cache pnpm modules - uses: actions/cache@v2 + - uses: pnpm/action-setup@v4 with: - path: ~/.pnpm-store - key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}- + version: 10 + run_install: true - - uses: pnpm/action-setup@v2 + - name: Setup Node.js + uses: actions/setup-node@v4 with: - version: 9 - run_install: true + node-version: '22' + cache: 'pnpm' - name: Unit test run: pnpm run -r test @@ -47,23 +40,16 @@ jobs: with: fetch-depth: 0 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: '22' - - - name: Cache pnpm modules - uses: actions/cache@v2 + - uses: pnpm/action-setup@v4 with: - path: ~/.pnpm-store - key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}- + version: 10 + run_install: true - - uses: pnpm/action-setup@v2 + - name: Setup Node.js + uses: actions/setup-node@v4 with: - version: 9 - run_install: true + node-version: '22' + cache: 'pnpm' - name: Build client working-directory: packages/client/ @@ -71,7 +57,7 @@ jobs: # install app again to respect shamefully hoisted dependencies - name: Install app - working-directory: packages/app/ + working-directory: packages/web/ run: pnpm install - name: Typecheck @@ -86,23 +72,16 @@ jobs: with: fetch-depth: 0 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: '22' - - - name: Cache pnpm modules - uses: actions/cache@v2 + - uses: pnpm/action-setup@v4 with: - path: ~/.pnpm-store - key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}- + version: 10 + run_install: true - - uses: pnpm/action-setup@v2 + - name: Setup Node.js + uses: actions/setup-node@v4 with: - version: 9 - run_install: true + node-version: '22' + cache: 'pnpm' # needed to prepare the auto-generated files for the client package - name: Build client @@ -121,23 +100,16 @@ jobs: with: fetch-depth: 0 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: '22' - - - name: Cache pnpm modules - uses: actions/cache@v2 + - uses: pnpm/action-setup@v4 with: - path: ~/.pnpm-store - key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}- + version: 10 + run_install: true - - uses: pnpm/action-setup@v2 + - name: Setup Node.js + uses: actions/setup-node@v4 with: - version: 9 - run_install: true + node-version: '22' + cache: 'pnpm' - name: Check format run: pnpm run format:check diff --git a/Dockerfile b/Dockerfile index e433ae7..eb15880 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,11 @@ -FROM node:18-alpine as overmind +FROM node:22.17.1-alpine AS overmind WORKDIR /app RUN apk add --update curl gzip RUN curl https://github.com/DarthSim/overmind/releases/download/v2.4.0/overmind-v2.4.0-linux-amd64.gz -L -o overmind.gz RUN gunzip overmind.gz RUN chmod +x overmind -FROM node:18-alpine +FROM node:22.17.1-alpine ENV NODE_ENV=production ENV DATA_PATH=/app/data RUN apk --no-cache add ca-certificates tmux @@ -27,4 +27,4 @@ RUN mkdir -p /static ENV NUXT_PUBLIC_API_CLIENT_BASE_URL=/api COPY ./packages/app/.output .output -RUN chown -R node:node /app \ No newline at end of file +RUN chown -R node:node /app diff --git a/README.md b/README.md index 82b90cc..5969490 100644 --- a/README.md +++ b/README.md @@ -63,5 +63,5 @@ pnpm i cp .env.example .env # start the server -pnpm start +pnpm run dev ``` diff --git a/docker-compose.yml b/docker-compose.yml index 3bf0ecd..f9cd214 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3' - services: # app: # build: . diff --git a/package.json b/package.json index f296564..01f5bed 100644 --- a/package.json +++ b/package.json @@ -9,19 +9,23 @@ "scripts": { "format:check": "prettier --check .", "format:fix": "prettier --write .", - "start": "pnpm --parallel start" + "dev": "pnpm --parallel dev" }, "devDependencies": { "prettier": "^2.5.1" }, "engines": { - "node": ">=16", - "pnpm": "9" + "node": ">=22", + "pnpm": "10" }, "pnpm": { - "overrides": { - "ufo": "^1.3.1", - "nuxt": "3.7.4" - } + "overrides": {}, + "ignoredBuiltDependencies": [ + "@parcel/watcher", + "@tailwindcss/oxide", + "esbuild", + "ngrok", + "vue-demi" + ] } } diff --git a/packages/app/package.json b/packages/app/package.json deleted file mode 100644 index 722a717..0000000 --- a/packages/app/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "@geprog/gringotts-app", - "private": true, - "scripts": { - "build": "nuxt build", - "start": "nuxt dev", - "generate": "nuxt generate", - "preview": "nuxt preview", - "postinstall": "nuxt prepare", - "typecheck": "vue-tsc --noEmit" - }, - "devDependencies": { - "@iconify/json": "^2.2.130", - "@nuxt/devtools": "latest", - "@nuxt/ui": "^2.9.0", - "@nuxtjs/tailwindcss": "^6.8.0", - "@types/node": "^18.16.19", - "nuxt": "^3.7.4", - "nuxt-icon": "^0.5.0", - "typescript": "^5.1.6", - "vue-tsc": "^1.8.21" - }, - "dependencies": { - "@geprog/gringotts-client": "workspace:*", - "@pinia/nuxt": "^0.5.1", - "@popperjs/core": "^2.11.8", - "cross-fetch": "^4.0.0", - "dayjs": "^1.11.10", - "pinia": "^2.1.7", - "v-calendar": "^3.1.2" - } -} diff --git a/packages/app/pages/customers/index.vue b/packages/app/pages/customers/index.vue deleted file mode 100644 index c266a65..0000000 --- a/packages/app/pages/customers/index.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - diff --git a/packages/app/pages/invoices/index.vue b/packages/app/pages/invoices/index.vue deleted file mode 100644 index 02984c7..0000000 --- a/packages/app/pages/invoices/index.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - diff --git a/packages/app/pages/payments/index.vue b/packages/app/pages/payments/index.vue deleted file mode 100644 index fec755d..0000000 --- a/packages/app/pages/payments/index.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - diff --git a/packages/app/pages/subscriptions/index.vue b/packages/app/pages/subscriptions/index.vue deleted file mode 100644 index c91aeb6..0000000 --- a/packages/app/pages/subscriptions/index.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - diff --git a/packages/app/server/tsconfig.json b/packages/app/server/tsconfig.json deleted file mode 100644 index b9ed69c..0000000 --- a/packages/app/server/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../.nuxt/tsconfig.server.json" -} diff --git a/packages/app/tsconfig.json b/packages/app/tsconfig.json deleted file mode 100644 index a746f2a..0000000 --- a/packages/app/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - // https://nuxt.com/docs/guide/concepts/typescript - "extends": "./.nuxt/tsconfig.json" -} diff --git a/packages/client/package.json b/packages/client/package.json index 20c85d9..54637a8 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -5,7 +5,8 @@ "exports": { ".": { "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "types": "./dist/index.d.ts" } }, "main": "./dist/index.js", @@ -24,7 +25,7 @@ }, "devDependencies": { "@types/jsonwebtoken": "^8.5.8", - "@types/node": "^18.6.0", + "@types/node": "^22.17.0", "c8": "^7.12.0", "eslint": "^8.20.0", "swagger-typescript-api": "^9.3.1", diff --git a/packages/server/package.json b/packages/server/package.json index c7a5432..30163cd 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -4,7 +4,7 @@ "description": "Server of the Gringotts system", "main": "./dist/index.js", "scripts": { - "start": "tsx watch src/index.ts", + "dev": "tsx watch src/index.ts", "build": "tsx cli/build.ts", "clean": "rm -rf dist/ node_modules/", "lint": "eslint --max-warnings 0 .", @@ -45,7 +45,7 @@ "devDependencies": { "@geprog/eslint-config": "^1.1.0", "@types/jsonwebtoken": "^8.5.8", - "@types/node": "^18.6.0", + "@types/node": "^22.17.0", "@types/nodemailer": "^6.4.14", "@types/uuid": "^8.3.4", "@vitest/coverage-c8": "^0.29.7", diff --git a/packages/app/.gitignore b/packages/web/.gitignore similarity index 100% rename from packages/app/.gitignore rename to packages/web/.gitignore diff --git a/packages/app/.npmrc b/packages/web/.npmrc similarity index 58% rename from packages/app/.npmrc rename to packages/web/.npmrc index cf04042..319e41e 100644 --- a/packages/app/.npmrc +++ b/packages/web/.npmrc @@ -1,2 +1 @@ -shamefully-hoist=true strict-peer-dependencies=false diff --git a/packages/app/app.config.ts b/packages/web/app/app.config.ts similarity index 100% rename from packages/app/app.config.ts rename to packages/web/app/app.config.ts diff --git a/packages/web/app/app.vue b/packages/web/app/app.vue new file mode 100644 index 0000000..5acf3c1 --- /dev/null +++ b/packages/web/app/app.vue @@ -0,0 +1,7 @@ + diff --git a/packages/web/app/assets/css/main.css b/packages/web/app/assets/css/main.css new file mode 100644 index 0000000..477bfa7 --- /dev/null +++ b/packages/web/app/assets/css/main.css @@ -0,0 +1,2 @@ +@import 'tailwindcss'; +@import '@nuxt/ui'; diff --git a/packages/app/components/DatePicker.vue b/packages/web/app/components/DatePicker.vue similarity index 88% rename from packages/app/components/DatePicker.vue rename to packages/web/app/components/DatePicker.vue index b53d991..f62ee9b 100644 --- a/packages/app/components/DatePicker.vue +++ b/packages/web/app/components/DatePicker.vue @@ -1,5 +1,5 @@