@qlover/create-app 0.1.14 → 0.1.16

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.
Files changed (112) hide show
  1. package/CHANGELOG.md +41 -16
  2. package/bin/create-app.js +0 -0
  3. package/configs/_common/package.json.template +10 -0
  4. package/configs/react-app/eslint.config.js +70 -42
  5. package/dist/index.cjs +1 -3631
  6. package/dist/index.js +1 -3625
  7. package/package.json +7 -7
  8. package/templates/react-app/.env +1 -0
  9. package/templates/react-app/config/ErrorIdentifier.ts +27 -0
  10. package/templates/react-app/config/app.router.json +9 -0
  11. package/templates/react-app/config/common.ts +12 -0
  12. package/templates/react-app/config/feapi.mock.json +15 -2
  13. package/templates/react-app/config/i18n.ts +3 -11
  14. package/templates/react-app/package.json +7 -4
  15. package/templates/react-app/pnpm-lock.yaml +176 -25
  16. package/templates/react-app/public/locales/en/common.json +6 -2
  17. package/templates/react-app/public/locales/zh/common.json +6 -3
  18. package/templates/react-app/src/App.tsx +8 -8
  19. package/templates/react-app/src/base/apis/AiApi.ts +55 -0
  20. package/templates/react-app/src/base/apis/feApi/FeApi.ts +13 -44
  21. package/templates/react-app/src/base/apis/feApi/FeApiAdapter.ts +14 -0
  22. package/templates/react-app/src/base/apis/feApi/FeApiBootstarp.ts +67 -0
  23. package/templates/react-app/src/base/apis/feApi/FeApiType.ts +2 -35
  24. package/templates/react-app/src/base/apis/userApi/UserApi.ts +64 -0
  25. package/templates/react-app/src/base/apis/userApi/UserApiAdapter.ts +14 -0
  26. package/templates/react-app/src/base/apis/userApi/UserApiBootstarp.ts +75 -0
  27. package/templates/react-app/src/base/apis/userApi/UserApiType.ts +52 -0
  28. package/templates/react-app/src/base/cases/RequestLogger.ts +71 -0
  29. package/templates/react-app/src/base/cases/RequestStatusCatcher.ts +41 -0
  30. package/templates/react-app/src/base/cases/appError/AppError.ts +13 -0
  31. package/templates/react-app/{lib/router-loader/RouterLoader.ts → src/base/cases/router-loader/index.ts} +1 -1
  32. package/templates/react-app/src/base/port/ApiTransactionInterface.ts +7 -0
  33. package/templates/react-app/src/base/port/InversifyIocInterface.ts +1 -1
  34. package/templates/react-app/src/base/port/LoginInterface.ts +4 -0
  35. package/templates/react-app/src/base/port/RequestCatcherInterface.ts +12 -0
  36. package/templates/react-app/src/{services → base/services}/I18nService.ts +7 -2
  37. package/templates/react-app/src/{services/processer → base/services}/ProcesserService.ts +10 -11
  38. package/templates/react-app/src/base/types/Page.ts +1 -13
  39. package/templates/react-app/src/core/AppConfig.ts +14 -5
  40. package/templates/react-app/src/core/IOC.ts +77 -37
  41. package/templates/react-app/src/core/bootstrap.ts +38 -25
  42. package/templates/react-app/src/core/bootstraps/BootstrapApp.ts +7 -0
  43. package/templates/react-app/src/core/bootstraps/index.ts +12 -0
  44. package/templates/react-app/src/core/globals.ts +7 -10
  45. package/templates/react-app/src/core/registers/RegisterApi.ts +1 -52
  46. package/templates/react-app/src/core/registers/RegisterCommon.ts +44 -6
  47. package/templates/react-app/src/core/registers/RegisterControllers.ts +5 -34
  48. package/templates/react-app/src/core/registers/RegisterGlobals.ts +8 -2
  49. package/templates/react-app/src/core/registers/index.ts +2 -1
  50. package/templates/react-app/src/main.tsx +4 -1
  51. package/templates/react-app/src/pages/auth/Layout.tsx +4 -3
  52. package/templates/react-app/src/pages/auth/Login.tsx +5 -3
  53. package/templates/react-app/src/pages/base/ErrorIdentifier.tsx +39 -0
  54. package/templates/react-app/src/pages/base/Executor.tsx +31 -10
  55. package/templates/react-app/src/pages/base/Home.tsx +58 -30
  56. package/templates/react-app/src/pages/base/JSONStorage.tsx +2 -4
  57. package/templates/react-app/src/pages/base/Request.tsx +318 -73
  58. package/templates/react-app/src/pages/base/components/BaseHeader.tsx +2 -2
  59. package/templates/react-app/src/{components → uikit/components}/RouterRenderComponent.tsx +1 -1
  60. package/templates/react-app/src/{components → uikit/components}/ThemeSwitcher.tsx +6 -6
  61. package/templates/react-app/src/uikit/contexts/BaseRouteContext.ts +6 -3
  62. package/templates/react-app/src/uikit/controllers/ExecutorController.ts +52 -22
  63. package/templates/react-app/src/uikit/controllers/JSONStorageController.ts +7 -3
  64. package/templates/react-app/src/uikit/controllers/RequestController.ts +65 -11
  65. package/templates/react-app/src/uikit/controllers/RouterController.ts +8 -7
  66. package/templates/react-app/src/uikit/controllers/UserController.ts +48 -54
  67. package/templates/react-app/src/uikit/hooks/useLanguageGuard.ts +1 -2
  68. package/templates/react-app/src/uikit/providers/ProcessProvider.tsx +4 -4
  69. package/templates/react-app/src/uikit/styles/css/index.css +1 -1
  70. package/templates/react-app/src/uikit/styles/css/page.css +1 -1
  71. package/templates/react-app/tailwind.config.js +2 -2
  72. package/templates/react-app/tsconfig.json +0 -1
  73. package/templates/react-app/tsconfig.node.json +1 -2
  74. package/templates/react-app/vite.config.ts +21 -26
  75. package/templates/react-app/.env.local +0 -24
  76. package/templates/react-app/lib/bootstrap/Bootstrap.ts +0 -36
  77. package/templates/react-app/lib/bootstrap/BootstrapExecutorPlugin.ts +0 -20
  78. package/templates/react-app/lib/bootstrap/IOCContainerInterface.ts +0 -33
  79. package/templates/react-app/lib/bootstrap/IOCManagerInterface.ts +0 -12
  80. package/templates/react-app/lib/bootstrap/index.ts +0 -7
  81. package/templates/react-app/lib/bootstrap/plugins/InjectEnv.ts +0 -61
  82. package/templates/react-app/lib/bootstrap/plugins/InjectGlobal.ts +0 -36
  83. package/templates/react-app/lib/bootstrap/plugins/InjectIOC.ts +0 -24
  84. package/templates/react-app/lib/env-config/injectPkgConfig.ts +0 -11
  85. package/templates/react-app/lib/fe-react-controller/FeController.ts +0 -19
  86. package/templates/react-app/lib/fe-react-controller/index.ts +0 -2
  87. package/templates/react-app/lib/fe-react-controller/useController.ts +0 -71
  88. package/templates/react-app/lib/fe-react-theme/ThemeController.ts +0 -40
  89. package/templates/react-app/lib/fe-react-theme/ThemeStateGetter.ts +0 -53
  90. package/templates/react-app/lib/fe-react-theme/index.ts +0 -3
  91. package/templates/react-app/lib/fe-react-theme/type.ts +0 -21
  92. package/templates/react-app/lib/openAiApi/OpenAIAuthPlugin.ts +0 -29
  93. package/templates/react-app/lib/openAiApi/OpenAIClient.ts +0 -51
  94. package/templates/react-app/lib/openAiApi/StreamProcessor.ts +0 -81
  95. package/templates/react-app/lib/openAiApi/index.ts +0 -3
  96. package/templates/react-app/lib/request-common-plugin/index.ts +0 -169
  97. package/templates/react-app/lib/router-loader/Page.ts +0 -68
  98. package/templates/react-app/lib/tw-root10px/index.css +0 -4
  99. package/templates/react-app/src/base/apis/feApi/FeApiMockPlugin.ts +0 -44
  100. package/templates/react-app/src/base/apis/feApi/index.ts +0 -2
  101. package/templates/react-app/src/base/cases/UserToken.ts +0 -47
  102. package/templates/react-app/src/base/consts/IOCIdentifier.ts +0 -16
  103. package/templates/react-app/src/base/port/IOCFunctionInterface.ts +0 -39
  104. package/templates/react-app/src/base/port/StorageTokenInterface.ts +0 -27
  105. package/templates/react-app/src/core/AppIOCContainer.ts +0 -30
  106. package/templates/react-app/src/uikit/utils/RequestLogger.ts +0 -37
  107. package/templates/react-app/src/uikit/utils/datetime.ts +0 -30
  108. package/templates/react-app/src/uikit/utils/thread.ts +0 -3
  109. /package/templates/react-app/lib/{tw-root10px/index.js → tailwind/root10px.js} +0 -0
  110. /package/templates/react-app/lib/{fe-react-theme/tw-generator.js → tailwind/theme-generator.js} +0 -0
  111. /package/templates/react-app/src/{components → uikit/components}/Loading.tsx +0 -0
  112. /package/templates/react-app/src/{components → uikit/components}/LocaleLink.tsx +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qlover/create-app",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "main": "./dist/index.cjs",
@@ -26,11 +26,6 @@
26
26
  "bin": {
27
27
  "create-app": "bin/create-app.js"
28
28
  },
29
- "scripts": {
30
- "build": "rollup -c",
31
- "create:app:build": "npm run build && npm run create:app",
32
- "create:app": "node ./bin/create-app.js"
33
- },
34
29
  "repository": {
35
30
  "type": "git",
36
31
  "url": "git+https://github.com/qlover/fe-base.git",
@@ -58,5 +53,10 @@
58
53
  "inquirer": "^12.3.2",
59
54
  "ora": "^8.1.1",
60
55
  "lodash": "^4.17.21"
56
+ },
57
+ "scripts": {
58
+ "build": "rollup -c",
59
+ "create:app:build": "npm run build && npm run create:app",
60
+ "create:app": "node ./bin/create-app.js"
61
61
  }
62
- }
62
+ }
@@ -22,3 +22,4 @@ VITE_OPEN_AI_TOKEN_PREFIX=Bearer
22
22
  VITE_OPEN_AI_REQUIRE_TOKEN=true
23
23
  VITE_LOGIN_USER=admin
24
24
  VITE_LOGIN_PASSWORD=123456
25
+ VITE_FE_API_BASE_URL=https://feapi.example.com/
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @description IOC 未实现
3
+ * @localZh IOC 未实现
4
+ * @localEn IOC not implemented
5
+ */
6
+ export const APP_IOC_NOT_IMPLEMENTED = 'err.ioc.not.implemented';
7
+
8
+ /**
9
+ * @description 本地未找到 user token
10
+ * @localZh 本地未找到 user token
11
+ * @localEn Local no user token
12
+ */
13
+ export const LOCAL_NO_USER_TOKEN = 'err.local.no.user.token';
14
+
15
+ /**
16
+ * @description 全局未找到 window
17
+ * @localZh 全局未找到 window
18
+ * @localEn Global no window
19
+ */
20
+ export const GLOBAL_NO_WINDOW = 'err.global.no.window';
21
+
22
+ /**
23
+ * @description 必须在 PageProvider 中使用
24
+ * @localZh 必须在 PageProvider 中使用
25
+ * @localEn Must be used in PageProvider
26
+ */
27
+ export const WITHIN_PAGE_PROVIDER = 'err.within.page.provider';
@@ -60,6 +60,15 @@
60
60
  "localNamespace": "executor"
61
61
  }
62
62
  },
63
+ {
64
+ "path": "errorIdentifier",
65
+ "element": "base/ErrorIdentifier",
66
+ "meta": {
67
+ "title": "FE-Utils ErrorIdentifier",
68
+ "icon": "info",
69
+ "localNamespace": "common"
70
+ }
71
+ },
63
72
  {
64
73
  "path": "404",
65
74
  "element": "404",
@@ -1,3 +1,15 @@
1
1
  export const envPrefix = 'VITE_';
2
2
 
3
3
  export const browserGlobalsName = 'feGlobals';
4
+
5
+ /**
6
+ * bootstrap ,not inject env
7
+ */
8
+ export const envBlackList = ['env', 'userNodeEnv'];
9
+
10
+ export const loggerStyles = {
11
+ INFO: 'color: blue;',
12
+ WARN: 'color: orange; font-weight: bold;',
13
+ ERROR: 'color: red; font-weight: bold;',
14
+ DEBUG: 'color: #8d7'
15
+ };
@@ -3,12 +3,25 @@
3
3
  "mock": true,
4
4
  "noUrl": true
5
5
  },
6
- "GET https://api.example.com/api/userinfo": {
6
+ "GET https://feapi.example.com/api/userinfo": {
7
7
  "name": "John Doe",
8
8
  "email": "john.doe@example.com",
9
9
  "picture": "https://randomuser.me/api/portraits/men/1.jpg"
10
10
  },
11
- "POST https://api.example.com/api/login": {
11
+ "POST https://feapi.example.com/api/login": {
12
12
  "token": "asdfasdf123123asdfasdf"
13
+ },
14
+ "POST https://api.openai.com/v1/chat/completions": {
15
+ "id": "chatcmpl-1234567890",
16
+ "object": "chat.completion",
17
+ "created": 1721702400,
18
+ "choices": [
19
+ {
20
+ "message": {
21
+ "role": "assistant",
22
+ "content": "Hello, how can I help you today?"
23
+ }
24
+ }
25
+ ]
13
26
  }
14
27
  }
@@ -1,14 +1,8 @@
1
- import { isProduction } from '@/core/globals';
2
-
3
- /** @type {import('i18next').InitOptions} */
4
- export const i18nConfig = {
5
- /**
6
- * default language
7
- */
1
+ export default {
8
2
  fallbackLng: 'en',
9
- debug: !isProduction,
3
+ debug: false,
10
4
  interpolation: {
11
- escapeValue: false // React already does escaping
5
+ escapeValue: false
12
6
  },
13
7
  ns: ['common'],
14
8
  defaultNS: 'common',
@@ -17,5 +11,3 @@ export const i18nConfig = {
17
11
  },
18
12
  supportedLngs: ['en', 'zh']
19
13
  } as const;
20
-
21
- export type I18nServiceLocale = (typeof i18nConfig.supportedLngs)[number];
@@ -51,7 +51,8 @@
51
51
  "test": "vitest run"
52
52
  },
53
53
  "dependencies": {
54
- "@qlover/fe-utils": "latest",
54
+ "@qlover/corekit-bridge": "^0.0.5",
55
+ "@qlover/fe-corekit": "^1.2.5",
55
56
  "@qlover/slice-store-react": "^1.0.8",
56
57
  "i18next": "^24.2.0",
57
58
  "i18next-browser-languagedetector": "^8.0.2",
@@ -65,17 +66,16 @@
65
66
  "reflect-metadata": "^0.2.2"
66
67
  },
67
68
  "devDependencies": {
68
- "@eslint/js": "^9.11.1",
69
69
  "@qlover/env-loader": "latest",
70
70
  "@qlover/eslint-plugin-fe-dev": "^0.2.0",
71
71
  "@qlover/fe-scripts": "latest",
72
- "@rollup/plugin-alias": "^5.1.1",
72
+ "@qlover/fe-standard": "^0.0.4",
73
73
  "@types/lodash": "^4.17.13",
74
74
  "@types/react": "^18.3.11",
75
75
  "@types/react-dom": "^18.3.0",
76
76
  "@types/react-syntax-highlighter": "^15.5.13",
77
77
  "@types/typo-js": "^1.2.2",
78
- "@vitejs/plugin-react": "^4.3.4",
78
+ "@vitejs/plugin-react": "^4.4.1",
79
79
  "@vitejs/plugin-react-swc": "^3.5.0",
80
80
  "autoprefixer": "^10.4.20",
81
81
  "eslint": "^9.15.0",
@@ -83,14 +83,17 @@
83
83
  "eslint-plugin-react": "^7.37.4",
84
84
  "eslint-plugin-react-hooks": "^5.0.0",
85
85
  "eslint-plugin-react-refresh": "^0.4.14",
86
+ "eslint-plugin-vitest": "^0.5.4",
86
87
  "globals": "^15.12.0",
87
88
  "postcss": "^8.4.49",
89
+ "prettier": "^3.5.3",
88
90
  "sass-embedded": "^1.79.4",
89
91
  "tailwindcss": "^3.4.16",
90
92
  "typescript": "^5.6.3",
91
93
  "typescript-eslint": "^8.15.0",
92
94
  "vite": "^5.4.8",
93
95
  "vite-plugin-cross-origin-isolation": "^0.1.6",
96
+ "vite-tsconfig-paths": "^5.1.4",
94
97
  "vitest": "^3.0.5"
95
98
  }
96
99
  }
@@ -9,11 +9,11 @@ importers:
9
9
  .:
10
10
  dependencies:
11
11
  '@qlover/corekit-bridge':
12
- specifier: ^0.0.1
13
- version: 0.0.1
12
+ specifier: ^0.0.4
13
+ version: 0.0.4
14
14
  '@qlover/fe-corekit':
15
- specifier: ^1.2.1
16
- version: 1.2.2
15
+ specifier: ^1.2.5
16
+ version: 1.2.5
17
17
  '@qlover/slice-store-react':
18
18
  specifier: ^1.0.8
19
19
  version: 1.2.6
@@ -60,6 +60,9 @@ importers:
60
60
  '@qlover/fe-scripts':
61
61
  specifier: latest
62
62
  version: 0.10.1(@types/node@22.13.13)(typescript@5.8.2)
63
+ '@qlover/fe-standard':
64
+ specifier: ^0.0.4
65
+ version: 0.0.4
63
66
  '@types/lodash':
64
67
  specifier: ^4.17.13
65
68
  version: 4.17.16
@@ -76,8 +79,8 @@ importers:
76
79
  specifier: ^1.2.2
77
80
  version: 1.2.2
78
81
  '@vitejs/plugin-react':
79
- specifier: ^4.3.4
80
- version: 4.3.4(vite@5.4.15(@types/node@22.13.13)(sass-embedded@1.86.0))
82
+ specifier: ^4.4.1
83
+ version: 4.4.1(vite@5.4.15(@types/node@22.13.13)(sass-embedded@1.86.0))
81
84
  '@vitejs/plugin-react-swc':
82
85
  specifier: ^3.5.0
83
86
  version: 3.8.1(vite@5.4.15(@types/node@22.13.13)(sass-embedded@1.86.0))
@@ -99,12 +102,18 @@ importers:
99
102
  eslint-plugin-react-refresh:
100
103
  specifier: ^0.4.14
101
104
  version: 0.4.19(eslint@9.23.0(jiti@2.4.2))
105
+ eslint-plugin-vitest:
106
+ specifier: ^0.5.4
107
+ version: 0.5.4(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)(vitest@3.0.9(@types/node@22.13.13)(sass-embedded@1.86.0))
102
108
  globals:
103
109
  specifier: ^15.12.0
104
110
  version: 15.15.0
105
111
  postcss:
106
112
  specifier: ^8.4.49
107
113
  version: 8.5.3
114
+ prettier:
115
+ specifier: ^3.5.3
116
+ version: 3.5.3
108
117
  sass-embedded:
109
118
  specifier: ^1.79.4
110
119
  version: 1.86.0
@@ -559,8 +568,8 @@ packages:
559
568
  resolution: {integrity: sha512-vsJDAkYR6qCPu+ioGScGiMYR7LvZYIXh/dlQeviqoTWNCVfKTLYD/LkNWH4Mxsv2a5vpIRc77FN5DnmK1eBggQ==}
560
569
  engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
561
570
 
562
- '@qlover/corekit-bridge@0.0.1':
563
- resolution: {integrity: sha512-PCY8eLMUUVEEAFXpwWMwFAg4Cb7zVZSFTT46tUPdcGRpMcJDVYECpBpplRNHQVGP0uRg21UvUfSvg/yYK4Brug==}
571
+ '@qlover/corekit-bridge@0.0.4':
572
+ resolution: {integrity: sha512-IIiQEEs3P8XqNyS9IyZJmWKZ3mn5MouGUNiZ0LWfOnkhk1rFxslKlwB498pZ2ewKm9JGHkjDMddjI96WoUmpMg==}
564
573
 
565
574
  '@qlover/env-loader@0.0.1':
566
575
  resolution: {integrity: sha512-bgXQAuVay/TeaYC04KYOl4qffTN0sa+c2nmvZp1fGnD9sQLQa3wlGG0lPKo665ytIFMV93hXh1kLa1BaUTyNaQ==}
@@ -569,19 +578,22 @@ packages:
569
578
  resolution: {integrity: sha512-GXwiXHlGzEav2F0/QjhjH7ol6dE9+XlxMSirzxT/Vsbyh4LfvayyvVjvT5ullaJO0qtoVLg4SAwv+22YPm31lg==}
570
579
  engines: {node: '>=10'}
571
580
 
572
- '@qlover/fe-corekit@1.2.2':
573
- resolution: {integrity: sha512-4S75L/z1kZui4AS01EIENlbn9DKmVOh6IdBqXNm52J96KZVufqkLtbCd7ALenjR6lWus4e5hdoHv3hUxkYiQJw==}
581
+ '@qlover/fe-corekit@1.2.5':
582
+ resolution: {integrity: sha512-e4gvVuD1lVUbkmzLq8rTqegMQglRbHZBpeqYRkXk4nMXNdwH1grATb8pd4/3Ta9cWZHtJCKUuEgYF04bGF5RZw==}
574
583
 
575
584
  '@qlover/fe-scripts@0.10.1':
576
585
  resolution: {integrity: sha512-hGFoqYHmNsfXacpk7uajRAZCjGrLaJSLKnX4meVr5nf1T7X/BGqwAiN0V5HhiVRwmtDiXt/T2fofMwpdVop1Ow==}
577
586
  hasBin: true
578
587
 
588
+ '@qlover/fe-standard@0.0.4':
589
+ resolution: {integrity: sha512-tKkilDE1IRaFpt6koWLropb9TPRILX+U97td2k669Vcei9OXaDNytPPOFjVz7b2jhB8QyJSMBotlMwDhJoK3Mg==}
590
+
579
591
  '@qlover/fe-utils@1.1.4':
580
592
  resolution: {integrity: sha512-oRUn7CcpuRK3sCzAaTF8FxtS4Czo47N3jbAOo2+QqGajt6oqlax6WN9J91+IBsXrGvZZ8a2cdKXm9Y3Lt6EGQg==}
581
593
  deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
582
594
 
583
- '@qlover/scripts-context@0.0.7':
584
- resolution: {integrity: sha512-EsO7QJg0wl4dtzJugRhqgFsoPl9856XkJtRA+YNbSYCXtAP2bS51VvwKUHHxqKVmTYOWgOmhugb3L7aIYASUCQ==}
595
+ '@qlover/scripts-context@0.0.11':
596
+ resolution: {integrity: sha512-5/AphYzfjPI8NGpAyNqdatmOS7dDlfTi7Y9WLg0hp+TeNrRrf8cSrt7GB6Ek6UOaXL3va3LDM4IFtHsWd9/Riw==}
585
597
 
586
598
  '@qlover/slice-store-react@1.2.6':
587
599
  resolution: {integrity: sha512-m0lUc8p4y7JiYAA5pxpGsuHeJnwW8Q7V1xH4KJb0qDd/STbHn1N/1eyGB4wRBxzv/8PYfJ125fYm06OU1OymWA==}
@@ -829,6 +841,10 @@ packages:
829
841
  eslint: ^8.57.0 || ^9.0.0
830
842
  typescript: '>=4.8.4 <5.9.0'
831
843
 
844
+ '@typescript-eslint/scope-manager@7.18.0':
845
+ resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==}
846
+ engines: {node: ^18.18.0 || >=20.0.0}
847
+
832
848
  '@typescript-eslint/scope-manager@8.28.0':
833
849
  resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==}
834
850
  engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -840,16 +856,35 @@ packages:
840
856
  eslint: ^8.57.0 || ^9.0.0
841
857
  typescript: '>=4.8.4 <5.9.0'
842
858
 
859
+ '@typescript-eslint/types@7.18.0':
860
+ resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==}
861
+ engines: {node: ^18.18.0 || >=20.0.0}
862
+
843
863
  '@typescript-eslint/types@8.28.0':
844
864
  resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==}
845
865
  engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
846
866
 
867
+ '@typescript-eslint/typescript-estree@7.18.0':
868
+ resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==}
869
+ engines: {node: ^18.18.0 || >=20.0.0}
870
+ peerDependencies:
871
+ typescript: '*'
872
+ peerDependenciesMeta:
873
+ typescript:
874
+ optional: true
875
+
847
876
  '@typescript-eslint/typescript-estree@8.28.0':
848
877
  resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==}
849
878
  engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
850
879
  peerDependencies:
851
880
  typescript: '>=4.8.4 <5.9.0'
852
881
 
882
+ '@typescript-eslint/utils@7.18.0':
883
+ resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==}
884
+ engines: {node: ^18.18.0 || >=20.0.0}
885
+ peerDependencies:
886
+ eslint: ^8.56.0
887
+
853
888
  '@typescript-eslint/utils@8.28.0':
854
889
  resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==}
855
890
  engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -857,6 +892,10 @@ packages:
857
892
  eslint: ^8.57.0 || ^9.0.0
858
893
  typescript: '>=4.8.4 <5.9.0'
859
894
 
895
+ '@typescript-eslint/visitor-keys@7.18.0':
896
+ resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==}
897
+ engines: {node: ^18.18.0 || >=20.0.0}
898
+
860
899
  '@typescript-eslint/visitor-keys@8.28.0':
861
900
  resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==}
862
901
  engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -866,8 +905,8 @@ packages:
866
905
  peerDependencies:
867
906
  vite: ^4 || ^5 || ^6
868
907
 
869
- '@vitejs/plugin-react@4.3.4':
870
- resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
908
+ '@vitejs/plugin-react@4.4.1':
909
+ resolution: {integrity: sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==}
871
910
  engines: {node: ^14.18.0 || >=16.0.0}
872
911
  peerDependencies:
873
912
  vite: ^4.2.0 || ^5.0.0 || ^6.0.0
@@ -965,6 +1004,10 @@ packages:
965
1004
  resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
966
1005
  engines: {node: '>= 0.4'}
967
1006
 
1007
+ array-union@2.1.0:
1008
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
1009
+ engines: {node: '>=8'}
1010
+
968
1011
  array.prototype.findlast@1.2.5:
969
1012
  resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
970
1013
  engines: {node: '>= 0.4'}
@@ -1257,6 +1300,10 @@ packages:
1257
1300
  didyoumean@1.2.2:
1258
1301
  resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
1259
1302
 
1303
+ dir-glob@3.0.1:
1304
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
1305
+ engines: {node: '>=8'}
1306
+
1260
1307
  dlv@1.1.3:
1261
1308
  resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
1262
1309
 
@@ -1378,6 +1425,19 @@ packages:
1378
1425
  peerDependencies:
1379
1426
  eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
1380
1427
 
1428
+ eslint-plugin-vitest@0.5.4:
1429
+ resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==}
1430
+ engines: {node: ^18.0.0 || >= 20.0.0}
1431
+ peerDependencies:
1432
+ '@typescript-eslint/eslint-plugin': '*'
1433
+ eslint: ^8.57.0 || ^9.0.0
1434
+ vitest: '*'
1435
+ peerDependenciesMeta:
1436
+ '@typescript-eslint/eslint-plugin':
1437
+ optional: true
1438
+ vitest:
1439
+ optional: true
1440
+
1381
1441
  eslint-scope@8.3.0:
1382
1442
  resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
1383
1443
  engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -1586,6 +1646,10 @@ packages:
1586
1646
  resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
1587
1647
  engines: {node: '>= 0.4'}
1588
1648
 
1649
+ globby@11.1.0:
1650
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1651
+ engines: {node: '>=10'}
1652
+
1589
1653
  globrex@0.1.2:
1590
1654
  resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
1591
1655
 
@@ -2120,6 +2184,10 @@ packages:
2120
2184
  resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
2121
2185
  engines: {node: '>=16 || 14 >=14.18'}
2122
2186
 
2187
+ path-type@4.0.0:
2188
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
2189
+ engines: {node: '>=8'}
2190
+
2123
2191
  pathe@2.0.3:
2124
2192
  resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
2125
2193
 
@@ -2231,8 +2299,8 @@ packages:
2231
2299
  react-is@16.13.1:
2232
2300
  resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
2233
2301
 
2234
- react-refresh@0.14.2:
2235
- resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
2302
+ react-refresh@0.17.0:
2303
+ resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
2236
2304
  engines: {node: '>=0.10.0'}
2237
2305
 
2238
2306
  react-router-dom@7.4.0:
@@ -2533,6 +2601,10 @@ packages:
2533
2601
  resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
2534
2602
  engines: {node: '>=14'}
2535
2603
 
2604
+ slash@3.0.0:
2605
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
2606
+ engines: {node: '>=8'}
2607
+
2536
2608
  source-map-js@1.2.1:
2537
2609
  resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
2538
2610
  engines: {node: '>=0.10.0'}
@@ -2666,6 +2738,12 @@ packages:
2666
2738
  tr46@0.0.3:
2667
2739
  resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
2668
2740
 
2741
+ ts-api-utils@1.4.3:
2742
+ resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
2743
+ engines: {node: '>=16'}
2744
+ peerDependencies:
2745
+ typescript: '>=4.2.0'
2746
+
2669
2747
  ts-api-utils@2.1.0:
2670
2748
  resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
2671
2749
  engines: {node: '>=18.12'}
@@ -3328,9 +3406,9 @@ snapshots:
3328
3406
 
3329
3407
  '@pkgr/core@0.2.0': {}
3330
3408
 
3331
- '@qlover/corekit-bridge@0.0.1':
3409
+ '@qlover/corekit-bridge@0.0.4':
3332
3410
  dependencies:
3333
- '@qlover/fe-corekit': 1.2.2
3411
+ '@qlover/fe-corekit': 1.2.5
3334
3412
  '@qlover/slice-store-react': 1.2.6
3335
3413
  lodash: 4.17.21
3336
3414
 
@@ -3340,7 +3418,7 @@ snapshots:
3340
3418
 
3341
3419
  '@qlover/eslint-plugin-fe-dev@0.2.0': {}
3342
3420
 
3343
- '@qlover/fe-corekit@1.2.2':
3421
+ '@qlover/fe-corekit@1.2.5':
3344
3422
  dependencies:
3345
3423
  lodash: 4.17.21
3346
3424
  merge: 2.1.1
@@ -3351,7 +3429,7 @@ snapshots:
3351
3429
  '@octokit/rest': 21.1.1
3352
3430
  '@qlover/env-loader': 0.0.1
3353
3431
  '@qlover/fe-utils': 1.1.4
3354
- '@qlover/scripts-context': 0.0.7(typescript@5.8.2)
3432
+ '@qlover/scripts-context': 0.0.11(typescript@5.8.2)
3355
3433
  commander: 11.1.0
3356
3434
  commitizen: 4.3.1(@types/node@22.13.13)(typescript@5.8.2)
3357
3435
  ignore: 6.0.2
@@ -3360,14 +3438,16 @@ snapshots:
3360
3438
  - '@types/node'
3361
3439
  - typescript
3362
3440
 
3441
+ '@qlover/fe-standard@0.0.4': {}
3442
+
3363
3443
  '@qlover/fe-utils@1.1.4':
3364
3444
  dependencies:
3365
3445
  lodash: 4.17.21
3366
3446
  merge: 2.1.1
3367
3447
 
3368
- '@qlover/scripts-context@0.0.7(typescript@5.8.2)':
3448
+ '@qlover/scripts-context@0.0.11(typescript@5.8.2)':
3369
3449
  dependencies:
3370
- '@qlover/fe-utils': 1.1.4
3450
+ '@qlover/fe-corekit': 1.2.5
3371
3451
  chalk: 5.4.1
3372
3452
  cosmiconfig: 9.0.0(typescript@5.8.2)
3373
3453
  lodash: 4.17.21
@@ -3579,6 +3659,11 @@ snapshots:
3579
3659
  transitivePeerDependencies:
3580
3660
  - supports-color
3581
3661
 
3662
+ '@typescript-eslint/scope-manager@7.18.0':
3663
+ dependencies:
3664
+ '@typescript-eslint/types': 7.18.0
3665
+ '@typescript-eslint/visitor-keys': 7.18.0
3666
+
3582
3667
  '@typescript-eslint/scope-manager@8.28.0':
3583
3668
  dependencies:
3584
3669
  '@typescript-eslint/types': 8.28.0
@@ -3595,8 +3680,25 @@ snapshots:
3595
3680
  transitivePeerDependencies:
3596
3681
  - supports-color
3597
3682
 
3683
+ '@typescript-eslint/types@7.18.0': {}
3684
+
3598
3685
  '@typescript-eslint/types@8.28.0': {}
3599
3686
 
3687
+ '@typescript-eslint/typescript-estree@7.18.0(typescript@5.8.2)':
3688
+ dependencies:
3689
+ '@typescript-eslint/types': 7.18.0
3690
+ '@typescript-eslint/visitor-keys': 7.18.0
3691
+ debug: 4.4.0
3692
+ globby: 11.1.0
3693
+ is-glob: 4.0.3
3694
+ minimatch: 9.0.5
3695
+ semver: 7.7.1
3696
+ ts-api-utils: 1.4.3(typescript@5.8.2)
3697
+ optionalDependencies:
3698
+ typescript: 5.8.2
3699
+ transitivePeerDependencies:
3700
+ - supports-color
3701
+
3600
3702
  '@typescript-eslint/typescript-estree@8.28.0(typescript@5.8.2)':
3601
3703
  dependencies:
3602
3704
  '@typescript-eslint/types': 8.28.0
@@ -3611,6 +3713,17 @@ snapshots:
3611
3713
  transitivePeerDependencies:
3612
3714
  - supports-color
3613
3715
 
3716
+ '@typescript-eslint/utils@7.18.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)':
3717
+ dependencies:
3718
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
3719
+ '@typescript-eslint/scope-manager': 7.18.0
3720
+ '@typescript-eslint/types': 7.18.0
3721
+ '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.2)
3722
+ eslint: 9.23.0(jiti@2.4.2)
3723
+ transitivePeerDependencies:
3724
+ - supports-color
3725
+ - typescript
3726
+
3614
3727
  '@typescript-eslint/utils@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)':
3615
3728
  dependencies:
3616
3729
  '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
@@ -3622,6 +3735,11 @@ snapshots:
3622
3735
  transitivePeerDependencies:
3623
3736
  - supports-color
3624
3737
 
3738
+ '@typescript-eslint/visitor-keys@7.18.0':
3739
+ dependencies:
3740
+ '@typescript-eslint/types': 7.18.0
3741
+ eslint-visitor-keys: 3.4.3
3742
+
3625
3743
  '@typescript-eslint/visitor-keys@8.28.0':
3626
3744
  dependencies:
3627
3745
  '@typescript-eslint/types': 8.28.0
@@ -3634,13 +3752,13 @@ snapshots:
3634
3752
  transitivePeerDependencies:
3635
3753
  - '@swc/helpers'
3636
3754
 
3637
- '@vitejs/plugin-react@4.3.4(vite@5.4.15(@types/node@22.13.13)(sass-embedded@1.86.0))':
3755
+ '@vitejs/plugin-react@4.4.1(vite@5.4.15(@types/node@22.13.13)(sass-embedded@1.86.0))':
3638
3756
  dependencies:
3639
3757
  '@babel/core': 7.26.10
3640
3758
  '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10)
3641
3759
  '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10)
3642
3760
  '@types/babel__core': 7.20.5
3643
- react-refresh: 0.14.2
3761
+ react-refresh: 0.17.0
3644
3762
  vite: 5.4.15(@types/node@22.13.13)(sass-embedded@1.86.0)
3645
3763
  transitivePeerDependencies:
3646
3764
  - supports-color
@@ -3751,6 +3869,8 @@ snapshots:
3751
3869
  get-intrinsic: 1.3.0
3752
3870
  is-string: 1.1.1
3753
3871
 
3872
+ array-union@2.1.0: {}
3873
+
3754
3874
  array.prototype.findlast@1.2.5:
3755
3875
  dependencies:
3756
3876
  call-bind: 1.0.8
@@ -4079,6 +4199,10 @@ snapshots:
4079
4199
 
4080
4200
  didyoumean@1.2.2: {}
4081
4201
 
4202
+ dir-glob@3.0.1:
4203
+ dependencies:
4204
+ path-type: 4.0.0
4205
+
4082
4206
  dlv@1.1.3: {}
4083
4207
 
4084
4208
  doctrine@2.1.0:
@@ -4280,6 +4404,16 @@ snapshots:
4280
4404
  string.prototype.matchall: 4.0.12
4281
4405
  string.prototype.repeat: 1.0.0
4282
4406
 
4407
+ eslint-plugin-vitest@0.5.4(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)(vitest@3.0.9(@types/node@22.13.13)(sass-embedded@1.86.0)):
4408
+ dependencies:
4409
+ '@typescript-eslint/utils': 7.18.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
4410
+ eslint: 9.23.0(jiti@2.4.2)
4411
+ optionalDependencies:
4412
+ vitest: 3.0.9(@types/node@22.13.13)(sass-embedded@1.86.0)
4413
+ transitivePeerDependencies:
4414
+ - supports-color
4415
+ - typescript
4416
+
4283
4417
  eslint-scope@8.3.0:
4284
4418
  dependencies:
4285
4419
  esrecurse: 4.3.0
@@ -4546,6 +4680,15 @@ snapshots:
4546
4680
  define-properties: 1.2.1
4547
4681
  gopd: 1.2.0
4548
4682
 
4683
+ globby@11.1.0:
4684
+ dependencies:
4685
+ array-union: 2.1.0
4686
+ dir-glob: 3.0.1
4687
+ fast-glob: 3.3.3
4688
+ ignore: 5.3.2
4689
+ merge2: 1.4.1
4690
+ slash: 3.0.0
4691
+
4549
4692
  globrex@0.1.2: {}
4550
4693
 
4551
4694
  gopd@1.2.0: {}
@@ -5063,6 +5206,8 @@ snapshots:
5063
5206
  lru-cache: 10.4.3
5064
5207
  minipass: 7.1.2
5065
5208
 
5209
+ path-type@4.0.0: {}
5210
+
5066
5211
  pathe@2.0.3: {}
5067
5212
 
5068
5213
  pathval@2.0.0: {}
@@ -5149,7 +5294,7 @@ snapshots:
5149
5294
 
5150
5295
  react-is@16.13.1: {}
5151
5296
 
5152
- react-refresh@0.14.2: {}
5297
+ react-refresh@0.17.0: {}
5153
5298
 
5154
5299
  react-router-dom@7.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
5155
5300
  dependencies:
@@ -5464,6 +5609,8 @@ snapshots:
5464
5609
 
5465
5610
  signal-exit@4.1.0: {}
5466
5611
 
5612
+ slash@3.0.0: {}
5613
+
5467
5614
  source-map-js@1.2.1: {}
5468
5615
 
5469
5616
  stackback@0.0.2: {}
@@ -5634,6 +5781,10 @@ snapshots:
5634
5781
 
5635
5782
  tr46@0.0.3: {}
5636
5783
 
5784
+ ts-api-utils@1.4.3(typescript@5.8.2):
5785
+ dependencies:
5786
+ typescript: 5.8.2
5787
+
5637
5788
  ts-api-utils@2.1.0(typescript@5.8.2):
5638
5789
  dependencies:
5639
5790
  typescript: 5.8.2