diff --git a/package.json b/package.json index efd69ebb5..272c1eded 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ } }, "gitHooks": { - "commit-msg": "node scripts/verifyCommit.js" + "commit-msg": "node scripts/verifyCommit.mjs" }, "lint-staged": { "*.js": [ diff --git a/packages/axios/package.json b/packages/axios/package.json index e3be5edda..d7d55527a 100644 --- a/packages/axios/package.json +++ b/packages/axios/package.json @@ -56,7 +56,7 @@ "peerDependencies": { "axios": ">=1.7.7", "pinia-orm": ">=1.9.1", - "pinia": ">=2.1.7" + "pinia": ">=3.0.0" }, "devDependencies": { "@nuxt/eslint-config": "^0.3.13", @@ -66,7 +66,7 @@ "axios": "^1.7.2", "axios-mock-adapter": "^2.0.0", "eslint": "^9.6.0", - "pinia": "^2.1.7", + "pinia": "^3.0.1", "pinia-orm": "workspace:*", "size-limit": "^11.1.4", "typescript": "^5.5.3", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index d2d4c7bae..375ebe7fa 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -39,7 +39,7 @@ "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground" }, "peerDependencies": { - "@pinia/nuxt": "^0.5.1" + "@pinia/nuxt": "^0.10.1" }, "dependencies": { "@nuxt/kit": "^3.12.3", @@ -51,11 +51,11 @@ "@nuxt/module-builder": "^0.8.1", "@nuxt/schema": "^3.12.3", "@nuxtjs/eslint-config-typescript": "^12.1.0", - "@pinia/nuxt": "^0.5.1", + "@pinia/nuxt": "^0.10.1", "@types/prettier": "^3.0.0", "eslint": "^9.6.0", "nuxt": "^3.11.2", - "pinia": "^2.1.7", + "pinia": "^3.0.1", "prettier": "^3.3.2", "std-env": "^3.7.0", "typescript": "^5.5.3", diff --git a/packages/pinia-orm/package.json b/packages/pinia-orm/package.json index 1e215822f..be095381b 100644 --- a/packages/pinia-orm/package.json +++ b/packages/pinia-orm/package.json @@ -56,7 +56,7 @@ "test": "pnpm run test:3" }, "peerDependencies": { - "pinia": "^2.1.7" + "pinia": "^3.0.1" }, "dependencies": { "@pinia-orm/normalizr": "workspace:*", @@ -81,7 +81,7 @@ "happy-dom": "^16.0.1", "mkdist": "^2.1.0", "nanoid": "4.0.2", - "pinia": "^2.1.7", + "pinia": "^3.0.1", "prettier": "^3.3.2", "size-limit": "^11.1.4", "std-env": "^3.7.0", diff --git a/packages/pinia-orm/tests/feature/helpers/helpers.spec.ts b/packages/pinia-orm/tests/feature/helpers/helpers.spec.ts deleted file mode 100644 index 598345bf1..000000000 --- a/packages/pinia-orm/tests/feature/helpers/helpers.spec.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { PiniaVuePlugin, createPinia } from 'pinia' -import Vue from 'vue2' -import { describe, expect, it } from 'vitest' - -import { Model, Repository, createORM } from '../../../src' -import { Attr, Str } from '../../../src/decorators' -import { mapRepos } from '../../../src/composables/mapRepos' - -/* eslint vue/one-component-per-file:0 */ -describe('feature/helpers/helpers', () => { - class User extends Model { - static entity = 'users' - - @Attr() id!: any - @Str('') name!: string - } - - // @ts-expect-error wrong type error - Vue.use(PiniaVuePlugin) - - class UserRepository extends Repository { - use = User - } - - it('can map repositories from models in Vue components', () => { - const pinia = createPinia() - pinia.use(createORM()) - - const vm = new Vue({ - // @ts-expect-error wrong type error - pinia, - computed: mapRepos({ - userRepo: User, - }), - }) - - expect(vm.userRepo).toBeInstanceOf(Repository) - expect(vm.userRepo.getModel()).toBeInstanceOf(User) - }) - - it('can map repositories from abstract repositories in Vue components', () => { - const pinia = createPinia() - pinia.use(createORM()) - - const vm = new Vue({ - // @ts-expect-error wrong type error - pinia, - computed: { - ...mapRepos({ - userRepo: UserRepository, - }), - }, - }) - - expect(vm.userRepo).toBeInstanceOf(Repository) - expect(vm.userRepo.getModel()).toBeInstanceOf(User) - }) - - it('can map repositories in Vue components using spread syntax', () => { - const pinia = createPinia() - pinia.use(createORM()) - - const vm = new Vue({ - // @ts-expect-error wrong type error - pinia, - computed: { - ...mapRepos({ - userRepo: User, - }), - }, - }) - - expect(vm.userRepo).toBeInstanceOf(Repository) - expect(vm.userRepo.getModel()).toBeInstanceOf(User) - }) -}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 695f3eb8b..f38ad8d0e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -101,8 +101,8 @@ importers: specifier: ^9.6.0 version: 9.6.0 pinia: - specifier: ^2.1.7 - version: 2.1.7(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.5.3)))(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3)) + specifier: ^3.0.1 + version: 3.0.1(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3)) pinia-orm: specifier: workspace:* version: link:../pinia-orm @@ -174,8 +174,8 @@ importers: specifier: ^12.1.0 version: 12.1.0(eslint@9.6.0)(typescript@5.5.3) '@pinia/nuxt': - specifier: ^0.5.1 - version: 0.5.1(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.5.3)))(magicast@0.3.5)(rollup@4.34.7)(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3)) + specifier: ^0.10.1 + version: 0.10.1(magicast@0.3.5)(pinia@3.0.1(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3)))(rollup@4.34.7) '@types/prettier': specifier: ^3.0.0 version: 3.0.0 @@ -186,8 +186,8 @@ importers: specifier: ^3.11.2 version: 3.11.2(@parcel/watcher@2.4.1)(@types/node@22.10.5)(encoding@0.1.13)(eslint@9.6.0)(ioredis@5.3.2)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.7)(terser@5.19.3)(typescript@5.5.3)(vite@5.4.12(@types/node@22.10.5)(terser@5.19.3))(vue-tsc@2.0.26(typescript@5.5.3)) pinia: - specifier: ^2.1.7 - version: 2.1.7(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.5.3)))(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3)) + specifier: ^3.0.1 + version: 3.0.1(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3)) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -221,7 +221,7 @@ importers: version: 12.1.0(eslint@9.6.0)(typescript@5.7.2) '@pinia/testing': specifier: ^0.1.3 - version: 0.1.3(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.7.2)))(pinia@2.1.7(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.7.2)))(typescript@5.7.2)(vue@3.4.31(typescript@5.7.2)))(vue@3.4.31(typescript@5.7.2)) + version: 0.1.3(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.7.2)))(pinia@3.0.1(typescript@5.7.2)(vue@3.4.31(typescript@5.7.2)))(vue@3.4.31(typescript@5.7.2)) '@size-limit/preset-small-lib': specifier: ^11.1.4 version: 11.1.4(size-limit@11.1.4) @@ -268,8 +268,8 @@ importers: specifier: 4.0.2 version: 4.0.2 pinia: - specifier: ^2.1.7 - version: 2.1.7(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.7.2)))(typescript@5.7.2)(vue@3.4.31(typescript@5.7.2)) + specifier: ^3.0.1 + version: 3.0.1(typescript@5.7.2)(vue@3.4.31(typescript@5.7.2)) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -3026,6 +3026,11 @@ packages: peerDependencies: '@pinia/nuxt': ^0.4.11 + '@pinia/nuxt@0.10.1': + resolution: {integrity: sha512-xrpkKZHSmshPK6kQzboJ+TZiZ5zj73gBCI5SfiUaJkKKS9gx4B1hLEzJIjxZl0/HS5jRWrIvQ+u9ulvIRlNiow==} + peerDependencies: + pinia: ^3.0.1 + '@pinia/nuxt@0.2.1': resolution: {integrity: sha512-XPsuClG2ag/zSdSDqU8FRkTxwWKVZTYD6TVTzjMon3l9QZKC9YvW+jdZWasQilLCnU+jWpmhx41YpfIoPSwMbg==} peerDependencies: @@ -4162,15 +4167,24 @@ packages: '@vue/devtools-api@6.6.1': resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} + '@vue/devtools-api@7.7.2': + resolution: {integrity: sha512-1syn558KhyN+chO5SjlZIwJ8bV/bQ1nOVTG66t2RbG66ZGekyiYNmRO7X9BJCXQqPsFHlnksqvPhce2qpzxFnA==} + '@vue/devtools-core@7.3.3': resolution: {integrity: sha512-i6Bwkx4OwfY0QVHjAdsivhlzZ2HMj7fbNRYJsWspQ+dkA1f3nTzycPqZmVUsm2TGkbQlhTMhCAdDoP97JKoc+g==} '@vue/devtools-kit@7.3.3': resolution: {integrity: sha512-m+dFI57BrzKYPKq73mt4CJ5GWld5OLBseLHPHGVP7CaILNY9o1gWVJWAJeF8XtQ9LTiMxZSaK6NcBsFuxAhD0g==} + '@vue/devtools-kit@7.7.2': + resolution: {integrity: sha512-CY0I1JH3Z8PECbn6k3TqM1Bk9ASWxeMtTCvZr7vb+CHi+X/QwQm5F1/fPagraamKMAHVfuuCbdcnNg1A4CYVWQ==} + '@vue/devtools-shared@7.3.5': resolution: {integrity: sha512-Rqii3VazmWTi67a86rYopi61n5Ved05EybJCwyrfoO9Ok3MaS/4yRFl706ouoISMlyrASJFEzM0/AiDA6w4f9A==} + '@vue/devtools-shared@7.7.2': + resolution: {integrity: sha512-uBFxnp8gwW2vD6FrJB8JZLUzVb6PNRG0B0jBnHsOH8uKyva2qINY8PTF5Te4QlTbMDqU5K6qtJDr6cNsKWhbOA==} + '@vue/language-core@2.0.26': resolution: {integrity: sha512-/lt6SfQ3O1yDAhPsnLv9iSUgXd1dMHqUm/t3RctfqjuwQf1LnftZ414X3UBn6aXT4MiwXWtbNJ4Z0NZWwDWgJQ==} peerDependencies: @@ -4659,6 +4673,9 @@ packages: birpc@0.2.17: resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} + birpc@0.2.19: + resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -8828,6 +8845,15 @@ packages: typescript: optional: true + pinia@3.0.1: + resolution: {integrity: sha512-WXglsDzztOTH6IfcJ99ltYZin2mY8XZCXujkYWVIJlBjqsP6ST7zw+Aarh63E1cDVYeyUcPCxPHzJpEOmzB6Wg==} + peerDependencies: + typescript: '>=4.4.4' + vue: ^2.7.0 || ^3.5.11 + peerDependenciesMeta: + typescript: + optional: true + pirates@4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} @@ -15006,7 +15032,7 @@ snapshots: '@typescript-eslint/parser': 6.5.0(eslint@9.6.0)(typescript@5.5.3) eslint: 9.6.0 eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0)(eslint@9.6.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0))(eslint@9.6.0) eslint-plugin-vue: 9.17.0(eslint@9.6.0) transitivePeerDependencies: - eslint-import-resolver-node @@ -15048,8 +15074,8 @@ snapshots: '@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0))(eslint@9.6.0)': dependencies: eslint: 9.6.0 - eslint-config-standard: 17.0.0(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0)(eslint@9.6.0))(eslint-plugin-n@15.7.0(eslint@9.6.0))(eslint-plugin-promise@6.1.1(eslint@9.6.0))(eslint@9.6.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0)(eslint@9.6.0) + eslint-config-standard: 17.0.0(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0))(eslint@9.6.0))(eslint-plugin-n@15.7.0(eslint@9.6.0))(eslint-plugin-promise@6.1.1(eslint@9.6.0))(eslint@9.6.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0))(eslint@9.6.0) eslint-plugin-n: 15.7.0(eslint@9.6.0) eslint-plugin-node: 11.1.0(eslint@9.6.0) eslint-plugin-promise: 6.1.1(eslint@9.6.0) @@ -15170,24 +15196,21 @@ snapshots: - rollup - supports-color - '@pinia/nuxt@0.2.1(@vue/composition-api@1.7.2(vue@2.7.16))(pinia@2.1.7(@vue/composition-api@1.7.2(vue@2.7.16))(typescript@4.2.4)(vue@2.7.16))(vue@2.7.16)': - dependencies: - pinia: 2.1.7(@vue/composition-api@1.7.2(vue@2.7.16))(typescript@4.2.4)(vue@2.7.16) - vue-demi: 0.14.10(@vue/composition-api@1.7.2(vue@2.7.16))(vue@2.7.16) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - '@pinia/nuxt@0.5.1(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.5.3)))(magicast@0.3.5)(rollup@4.34.7)(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3))': + '@pinia/nuxt@0.10.1(magicast@0.3.5)(pinia@3.0.1(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3)))(rollup@4.34.7)': dependencies: '@nuxt/kit': 3.12.3(magicast@0.3.5)(rollup@4.34.7) - pinia: 2.1.7(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.5.3)))(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3)) + pinia: 3.0.1(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3)) transitivePeerDependencies: - - '@vue/composition-api' - magicast - rollup - supports-color - - typescript + + '@pinia/nuxt@0.2.1(@vue/composition-api@1.7.2(vue@2.7.16))(pinia@2.1.7(@vue/composition-api@1.7.2(vue@2.7.16))(typescript@4.2.4)(vue@2.7.16))(vue@2.7.16)': + dependencies: + pinia: 2.1.7(@vue/composition-api@1.7.2(vue@2.7.16))(typescript@4.2.4)(vue@2.7.16) + vue-demi: 0.14.10(@vue/composition-api@1.7.2(vue@2.7.16))(vue@2.7.16) + transitivePeerDependencies: + - '@vue/composition-api' - vue '@pinia/nuxt@0.5.1(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.7.2)))(magicast@0.3.5)(rollup@4.34.7)(typescript@5.7.2)(vue@3.4.31(typescript@5.7.2))': @@ -15202,9 +15225,9 @@ snapshots: - typescript - vue - '@pinia/testing@0.1.3(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.7.2)))(pinia@2.1.7(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.7.2)))(typescript@5.7.2)(vue@3.4.31(typescript@5.7.2)))(vue@3.4.31(typescript@5.7.2))': + '@pinia/testing@0.1.3(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.7.2)))(pinia@3.0.1(typescript@5.7.2)(vue@3.4.31(typescript@5.7.2)))(vue@3.4.31(typescript@5.7.2))': dependencies: - pinia: 2.1.7(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.7.2)))(typescript@5.7.2)(vue@3.4.31(typescript@5.7.2)) + pinia: 3.0.1(typescript@5.7.2)(vue@3.4.31(typescript@5.7.2)) vue-demi: 0.14.10(@vue/composition-api@1.7.2(vue@3.4.31(typescript@5.7.2)))(vue@3.4.31(typescript@5.7.2)) transitivePeerDependencies: - '@vue/composition-api' @@ -16800,6 +16823,10 @@ snapshots: '@vue/devtools-api@6.6.1': {} + '@vue/devtools-api@7.7.2': + dependencies: + '@vue/devtools-kit': 7.7.2 + '@vue/devtools-core@7.3.3(vite@5.4.12(@types/node@22.10.5)(terser@5.19.3))': dependencies: '@vue/devtools-kit': 7.3.3 @@ -16832,10 +16859,24 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.1 + '@vue/devtools-kit@7.7.2': + dependencies: + '@vue/devtools-shared': 7.7.2 + birpc: 0.2.19 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.1 + '@vue/devtools-shared@7.3.5': dependencies: rfdc: 1.4.1 + '@vue/devtools-shared@7.7.2': + dependencies: + rfdc: 1.4.1 + '@vue/language-core@2.0.26(typescript@5.5.3)': dependencies: '@volar/language-core': 2.4.0-alpha.16 @@ -17440,6 +17481,8 @@ snapshots: birpc@0.2.17: {} + birpc@0.2.19: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -19262,10 +19305,10 @@ snapshots: eslint-plugin-n: 15.7.0(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) - eslint-config-standard@17.0.0(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0)(eslint@9.6.0))(eslint-plugin-n@15.7.0(eslint@9.6.0))(eslint-plugin-promise@6.1.1(eslint@9.6.0))(eslint@9.6.0): + eslint-config-standard@17.0.0(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0))(eslint@9.6.0))(eslint-plugin-n@15.7.0(eslint@9.6.0))(eslint-plugin-promise@6.1.1(eslint@9.6.0))(eslint@9.6.0): dependencies: eslint: 9.6.0 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0)(eslint@9.6.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0))(eslint@9.6.0) eslint-plugin-n: 15.7.0(eslint@9.6.0) eslint-plugin-promise: 6.1.1(eslint@9.6.0) @@ -19315,7 +19358,7 @@ snapshots: enhanced-resolve: 5.15.0 eslint: 9.6.0 eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0))(eslint@9.6.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0)(eslint@9.6.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0))(eslint@9.6.0) fast-glob: 3.3.2 get-tsconfig: 4.7.0 is-core-module: 2.13.0 @@ -19457,7 +19500,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0)(eslint@9.6.0): + eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0))(eslint@9.6.0): dependencies: array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 @@ -23001,6 +23044,20 @@ snapshots: '@vue/composition-api': 1.7.2(vue@3.4.31(typescript@5.7.2)) typescript: 5.7.2 + pinia@3.0.1(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3)): + dependencies: + '@vue/devtools-api': 7.7.2 + vue: 3.4.31(typescript@5.5.3) + optionalDependencies: + typescript: 5.5.3 + + pinia@3.0.1(typescript@5.7.2)(vue@3.4.31(typescript@5.7.2)): + dependencies: + '@vue/devtools-api': 7.7.2 + vue: 3.4.31(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + pirates@4.0.5: {} pkg-dir@3.0.0: diff --git a/scripts/verifyCommit.js b/scripts/verifyCommit.js deleted file mode 100644 index 19422c429..000000000 --- a/scripts/verifyCommit.js +++ /dev/null @@ -1,29 +0,0 @@ -// Invoked on the commit-msg git hook by yorkie. - -const chalk = require('chalk') -const msgPath = process.env.GIT_PARAMS -const msg = require('fs').readFileSync(msgPath, 'utf-8').trim() - -const commitRE = - /^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(\(.+\))?: .{1,50}/ - -if (!commitRE.test(msg)) { - console.log() - console.error( - ` ${chalk.bgRed.white(' ERROR ')} ${chalk.red( - `invalid commit message format.` - )}\n\n` + - chalk.red( - ` Proper commit message format is required for automated changelog generation. Examples:\n\n` - ) + - ` ${chalk.green( - `fix(view): handle keep-alive with aborted navigations` - )}\n` + - ` ${chalk.green( - `fix(view): handle keep-alive with aborted navigations (close #28)` - )}\n\n` + - chalk.red(` See .github/commit-convention.md for more details.\n`) + - chalk.red('Your message: ' + msg) - ) - process.exit(1) -} diff --git a/scripts/verifyCommit.mjs b/scripts/verifyCommit.mjs new file mode 100644 index 000000000..4a2c0fed6 --- /dev/null +++ b/scripts/verifyCommit.mjs @@ -0,0 +1,27 @@ +// @ts-check +import { readFileSync } from 'node:fs' +import path from 'node:path' + +// Define raw escape codes for colors +const reset = '\x1b[0m' +const red = '\x1b[31m' +const green = '\x1b[32m' +const bgRedWhite = '\x1b[41m\x1b[37m' + +const msgPath = path.resolve('.git/COMMIT_EDITMSG') +const msg = readFileSync(msgPath, 'utf-8').trim() + +const commitRE = + /^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(\([\w\-]+\))?!?: .{1,50}/ + +if (!commitRE.test(msg)) { + console.log() + console.error( + ` ${bgRedWhite} ERROR ${reset} ${red}invalid commit message format.${reset}\n\n` + + `${red} Proper commit message format is required for automated changelog generation. Examples:\n\n` + + ` ${green}feat: add disableRoot option${reset}\n` + + ` ${green}fix(view): handle keep-alive with aborted navigations (close #28)${reset}\n\n` + + `${red} See .github/commit-convention.md for more details.${reset}\n` + ) + process.exit(1) +}