@makroz/mobile 1.2.2 → 1.2.4-rc14

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.
package/README.md CHANGED
@@ -5,7 +5,7 @@ Librería de componentes UI para React Native. Mantiene paridad de diseño y tok
5
5
  ## Características Core
6
6
  - **MkThemeProvider**: Contexto para manejar Light/Dark mode y customización de tokens.
7
7
  - **Tokens Parity**: Mismos nombres y escalas de colores que `@makroz/web`.
8
- - **useApi Native**: Hook optimizado para peticiones a MK-Director desde dispositivos móviles.
8
+ - **useApi Native**: Hook optimizado para peticiones a MK-Director desde dispositivos móviles. AbortController + `response.ok` + timeout enforced via shared `@makroz/core` `executeApiRequest`, so mobile stays in lock-step with web semantics.
9
9
 
10
10
  ## Uso
11
11
  ```typescript
@@ -0,0 +1,249 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from 'fs';
4
+ import path from 'path';
5
+ import { execSync } from 'child_process';
6
+ import readline from 'readline';
7
+
8
+ function detectPackageManager() {
9
+ if (fs.existsSync(path.join(process.cwd(), 'pnpm-lock.yaml'))) {
10
+ return 'pnpm';
11
+ }
12
+ if (fs.existsSync(path.join(process.cwd(), 'yarn.lock'))) {
13
+ return 'yarn';
14
+ }
15
+ return 'npm';
16
+ }
17
+
18
+ function getInstalledVersion(packageName) {
19
+ try {
20
+ const pkgJsonPath = path.join(process.cwd(), 'node_modules', packageName, 'package.json');
21
+ if (fs.existsSync(pkgJsonPath)) {
22
+ const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
23
+ return pkg.version || 'unknown';
24
+ }
25
+ } catch {
26
+ // silent fallback
27
+ }
28
+ return 'unknown';
29
+ }
30
+
31
+ function getLatestLocalVersion(spec) {
32
+ try {
33
+ const relativePath = spec.replace(/^file:/, '');
34
+ const absolutePath = path.resolve(process.cwd(), relativePath);
35
+ const pkgJsonPath = path.join(absolutePath, 'package.json');
36
+ if (fs.existsSync(pkgJsonPath)) {
37
+ const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
38
+ return pkg.version || 'unknown';
39
+ }
40
+ } catch {
41
+ // silent fallback
42
+ }
43
+ return 'unknown';
44
+ }
45
+
46
+ function getLatestRegistryVersion(packageName) {
47
+ try {
48
+ const stdout = execSync(`npm view ${packageName} version`, {
49
+ encoding: 'utf8',
50
+ stdio: ['ignore', 'pipe', 'ignore'],
51
+ timeout: 5000,
52
+ });
53
+ return stdout.trim() || 'unknown';
54
+ } catch {
55
+ // silent fallback
56
+ }
57
+ return 'unknown';
58
+ }
59
+
60
+ async function run() {
61
+ const args = process.argv.slice(2);
62
+ const toLocal = args.includes('--local') || args.includes('--dev');
63
+ const toProd = args.includes('--prod') || args.includes('--registry') || args.includes('--remote');
64
+
65
+ const pkgJsonPath = path.join(process.cwd(), 'package.json');
66
+ if (!fs.existsSync(pkgJsonPath)) {
67
+ console.error('❌ Error: No se encontró package.json en el directorio actual.');
68
+ process.exit(1);
69
+ }
70
+
71
+ let pkg;
72
+ try {
73
+ pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
74
+ } catch (e) {
75
+ console.error(`❌ Error al leer package.json: ${e.message}`);
76
+ process.exit(1);
77
+ }
78
+
79
+ // --- MODE: Toggle local/production dependencies ---
80
+ if (toLocal || toProd) {
81
+ console.log(`\n🔄 Cambiando dependencias a modo: ${toLocal ? 'DESARROLLO (Local)' : 'PRODUCCIÓN (Nube)'}...\n`);
82
+
83
+ const dependencies = pkg.dependencies || {};
84
+ const devDependencies = pkg.devDependencies || {};
85
+ let modified = false;
86
+
87
+ const updateSection = (section) => {
88
+ for (const name in section) {
89
+ if (name.startsWith('@makroz/')) {
90
+ const spec = section[name];
91
+ if (toLocal) {
92
+ const folder = name.replace('@makroz/', 'mk-');
93
+ const localSpec = `file:../../mk-director/packages/${folder}`;
94
+ if (spec !== localSpec) {
95
+ section[name] = localSpec;
96
+ modified = true;
97
+ console.log(` 🔄 ${name}: ${spec} -> ${localSpec}`);
98
+ }
99
+ } else if (toProd) {
100
+ if (spec.startsWith('file:')) {
101
+ const latest = getLatestRegistryVersion(name);
102
+ if (latest !== 'unknown') {
103
+ const prodSpec = `^${latest}`;
104
+ section[name] = prodSpec;
105
+ modified = true;
106
+ console.log(` 🔄 ${name}: ${spec} -> ${prodSpec}`);
107
+ } else {
108
+ console.warn(` ⚠️ No se pudo obtener la versión de NPM para ${name}. Se mantiene como local.`);
109
+ }
110
+ }
111
+ }
112
+ }
113
+ }
114
+ };
115
+
116
+ updateSection(dependencies);
117
+ updateSection(devDependencies);
118
+
119
+ if (modified) {
120
+ fs.writeFileSync(pkgJsonPath, JSON.stringify(pkg, null, 2) + '\n', 'utf8');
121
+ console.log('\n✅ package.json actualizado correctamente.');
122
+ const packageManager = detectPackageManager();
123
+ let installCmd = 'npm install';
124
+ if (packageManager === 'pnpm') installCmd = 'pnpm install';
125
+ else if (packageManager === 'yarn') installCmd = 'yarn install';
126
+
127
+ console.log(`Ejecutando ${installCmd} para sincronizar dependencias...\n`);
128
+ try {
129
+ execSync(installCmd, { stdio: 'inherit' });
130
+ console.log('\n🏁 Sincronización exitosa.\n');
131
+ } catch (e) {
132
+ console.error(`❌ Error al sincronizar: ${e.message}`);
133
+ process.exit(1);
134
+ }
135
+ } else {
136
+ console.log('🏁 No se requirieron cambios en package.json (ya configurado en este modo).');
137
+ }
138
+ process.exit(0);
139
+ }
140
+
141
+ // --- MODE: Interactive Update ---
142
+ console.log('\n🚀 Iniciando actualización interactiva de paquetes @makroz...\n');
143
+
144
+ const dependencies = pkg.dependencies || {};
145
+ const devDependencies = pkg.devDependencies || {};
146
+ const allDeps = { ...dependencies, ...devDependencies };
147
+
148
+ const makrozPackages = Object.keys(allDeps).filter(name => name.startsWith('@makroz/'));
149
+
150
+ if (makrozPackages.length === 0) {
151
+ console.log('✅ No se encontraron dependencias @makroz/* en este proyecto.');
152
+ process.exit(0);
153
+ }
154
+
155
+ const packageInfos = [];
156
+
157
+ for (const name of makrozPackages) {
158
+ const spec = allDeps[name];
159
+ const isLocal = spec.startsWith('file:');
160
+ const installed = getInstalledVersion(name);
161
+
162
+ let latest = 'unknown';
163
+ if (isLocal) {
164
+ latest = getLatestLocalVersion(spec);
165
+ } else {
166
+ latest = getLatestRegistryVersion(name);
167
+ }
168
+
169
+ // Compare versions to see if update is needed
170
+ let needsUpdate = false;
171
+ if (installed !== 'unknown' && latest !== 'unknown') {
172
+ needsUpdate = installed !== latest;
173
+ } else if (installed === 'unknown' && latest !== 'unknown') {
174
+ needsUpdate = true;
175
+ }
176
+
177
+ packageInfos.push({
178
+ name,
179
+ currentSpec: spec,
180
+ installedVersion: installed,
181
+ latestVersion: latest,
182
+ isLocal,
183
+ needsUpdate,
184
+ });
185
+ }
186
+
187
+ // Print summary of packages
188
+ console.log('Estado de los paquetes:');
189
+ for (const info of packageInfos) {
190
+ const typeLabel = info.isLocal ? '[Local]' : '[Registry]';
191
+ if (info.needsUpdate) {
192
+ console.log(` ⚠️ ${info.name} ${typeLabel}: ${info.installedVersion} -> ${info.latestVersion} (Actualización disponible)`);
193
+ } else {
194
+ console.log(` ✅ ${info.name} ${typeLabel}: ${info.installedVersion} (Al día)`);
195
+ }
196
+ }
197
+
198
+ const updatable = packageInfos.filter(info => info.needsUpdate);
199
+
200
+ if (updatable.length === 0) {
201
+ console.log('\n🏁 Todos los paquetes están al día. No es necesario actualizar.\n');
202
+ process.exit(0);
203
+ }
204
+
205
+ const packageManager = detectPackageManager();
206
+ console.log(`\nGestor de paquetes detectado: ${packageManager}`);
207
+
208
+ const rl = readline.createInterface({
209
+ input: process.stdin,
210
+ output: process.stdout,
211
+ });
212
+
213
+ rl.question('\n¿Querés actualizar los paquetes? (Y/n): ', (answer) => {
214
+ rl.close();
215
+ const confirmed = answer.trim().toLowerCase() !== 'n';
216
+
217
+ if (!confirmed) {
218
+ console.log('Actualización cancelada por el usuario.');
219
+ process.exit(0);
220
+ }
221
+
222
+ const packageNames = updatable.map(info => info.name);
223
+ let command = '';
224
+
225
+ if (packageManager === 'pnpm') {
226
+ command = `pnpm update ${packageNames.join(' ')}`;
227
+ } else if (packageManager === 'yarn') {
228
+ command = `yarn upgrade ${packageNames.join(' ')}`;
229
+ } else {
230
+ // npm
231
+ const args = updatable.map(info => {
232
+ return info.isLocal ? info.name : `${info.name}@latest`;
233
+ }).join(' ');
234
+ command = `npm install ${args}`;
235
+ }
236
+
237
+ console.log(`\nEjecutando: ${command}...\n`);
238
+
239
+ try {
240
+ execSync(command, { stdio: 'inherit' });
241
+ console.log('\n🏁 Actualización finalizada con éxito.\n');
242
+ } catch (e) {
243
+ console.error(`\n❌ Error al ejecutar la actualización: ${e.message}\n`);
244
+ process.exit(1);
245
+ }
246
+ });
247
+ }
248
+
249
+ run();
@@ -22,7 +22,7 @@ export function MkTable({ data, columns, loading = false, onSort, sortField, sor
22
22
  return null;
23
23
  return (_jsxs(View, { style: [styles.pagination, { borderTopColor: theme.border }], children: [_jsx(TouchableOpacity, { disabled: pagination.current_page === 1, onPress: () => onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange((pagination.current_page || 1) - 1), style: [styles.pageBtn, { borderColor: theme.border }, pagination.current_page === 1 && { opacity: 0.4 }], children: _jsx(Text, { style: { color: theme.foreground, fontSize: 13 }, children: "\u2190 Anterior" }) }), _jsxs(Text, { style: { color: theme.mutedForeground, fontSize: 13 }, children: [pagination.current_page, " / ", pagination.last_page] }), _jsx(TouchableOpacity, { disabled: pagination.current_page === pagination.last_page, onPress: () => onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange((pagination.current_page || 1) + 1), style: [styles.pageBtn, { borderColor: theme.border }, pagination.current_page === pagination.last_page && { opacity: 0.4 }], children: _jsx(Text, { style: { color: theme.foreground, fontSize: 13 }, children: "Siguiente \u2192" }) })] }));
24
24
  }, [loading, pagination, onPageChange, theme]);
25
- return (_jsxs(View, { style: [styles.container, { borderColor: theme.border, borderRadius: tokens.shared.radius }, style], children: [renderHeader(), _jsx(FlatList, { data: data, renderItem: renderRow, keyExtractor: keyExtractor || ((_, i) => String(i)), ListEmptyComponent: renderEmpty, ListFooterComponent: renderFooter, onRefresh: onRefresh, refreshing: refreshing, showsVerticalScrollIndicator: false })] }));
25
+ return (_jsxs(View, { style: [styles.container, { borderColor: theme.border, borderRadius: tokens.shared.radius }, style], children: [renderHeader(), _jsx(FlatList, { data: data, renderItem: renderRow, keyExtractor: keyExtractor || defaultKeyExtractor, ListEmptyComponent: renderEmpty, ListFooterComponent: renderFooter, onRefresh: onRefresh, refreshing: refreshing, showsVerticalScrollIndicator: false })] }));
26
26
  }
27
27
  const MkRowActions = ({ options, onSelect, theme }) => {
28
28
  const [open, setOpen] = React.useState(false);
@@ -44,4 +44,26 @@ const styles = StyleSheet.create({
44
44
  actionsPopup: { position: 'absolute', right: 0, top: 24, minWidth: 140, borderWidth: 1, borderRadius: 8, padding: 4, elevation: 8, shadowColor: '#000', shadowOpacity: 0.1, shadowRadius: 8, shadowOffset: { width: 0, height: 4 }, zIndex: 50 },
45
45
  actionItem: { flexDirection: 'row', alignItems: 'center', paddingVertical: 8, paddingHorizontal: 12, borderRadius: 4 },
46
46
  });
47
+ /**
48
+ * Default row-key resolver. Tries `id`, then `uuid`, then `key`,
49
+ * then falls back to a positional placeholder. The positional
50
+ * fallback is unique per index within a render but will cause
51
+ * React to reconcile rows incorrectly across sort/filter — add a
52
+ * stable id to your data source to avoid this.
53
+ */
54
+ function defaultKeyExtractor(item, index) {
55
+ const candidate = item;
56
+ const toKey = (v) => typeof v === 'string' || typeof v === 'number' ? String(v) : '';
57
+ if (toKey(candidate === null || candidate === void 0 ? void 0 : candidate.id))
58
+ return toKey(candidate.id);
59
+ if (toKey(candidate === null || candidate === void 0 ? void 0 : candidate.uuid))
60
+ return toKey(candidate.uuid);
61
+ if (toKey(candidate === null || candidate === void 0 ? void 0 : candidate.key))
62
+ return toKey(candidate.key);
63
+ // eslint-disable-next-line no-console
64
+ console.warn(`[MkTable] Row at index ${index} has no id/uuid/key. ` +
65
+ 'Falling back to a positional key — add a stable id to fix ' +
66
+ 'reconciliation bugs after sort/filter.');
67
+ return `mk-row-${index}`;
68
+ }
47
69
  //# sourceMappingURL=MkTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MkTable.js","sourceRoot":"","sources":["../../src/components/MkTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MkTable.js","sourceRoot":"","sources":["../../src/components/MkTable.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,6 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import React from 'react';
3
3
  import type { MkAuthContextType } from '@makroz/core';
4
- /**
5
- * @deprecated Use the new Auth module located in `src/auth/` instead.
6
- * This legacy context is kept for backward compatibility only and will be removed in future releases.
7
- * Migrate to `MkAuthProvider` from `src/auth/MkAuthProvider.tsx`.
8
- */
9
4
  export interface MkAuthProviderProps {
10
5
  children: ReactNode;
11
6
  endpoints?: {
@@ -19,16 +14,6 @@ export interface MkAuthProviderProps {
19
14
  removeItem: (key: string) => Promise<void> | void;
20
15
  };
21
16
  }
22
- /**
23
- * @deprecated Use `MkAuthProvider` from `@makroz/mobile` (backed by `src/auth/MkAuthProvider.tsx`) instead.
24
- * The new provider uses SecureStore for token persistence and scope-aware authentication.
25
- * This legacy provider is kept for backward compatibility only and will be removed in future releases.
26
- */
27
17
  export declare const MkAuthProvider: React.FC<MkAuthProviderProps>;
28
- /**
29
- * @deprecated Use `useMkAuth` from `@makroz/mobile` (backed by `src/auth/useMkAuth.ts`) instead.
30
- * The new hook uses SecureStore and throws `'useMkAuth must be used within an <MkAuthProvider>'`.
31
- * This legacy hook is kept for backward compatibility only and will be removed in future releases.
32
- */
33
18
  export declare const useMkAuth: () => MkAuthContextType;
34
19
  //# sourceMappingURL=MkAuthContext.d.ts.map
@@ -1,4 +1,16 @@
1
- import type { MkResponse, ApiStatus } from '@makroz/core';
1
+ import type { ApiStatus, MkResponse } from '@makroz/core';
2
+ import { type MkQueryParams } from '@makroz/core';
3
+ /**
4
+ * Mobile `useApi` hook — Expo/RN counterpart to `@makroz/web`'s.
5
+ *
6
+ * Same shape, same state machine, same AbortController wiring. The
7
+ * only platform-specific bits live in `globalThis.fetch` (RN's polyfill
8
+ * or the native one) — everything else is shared via
9
+ * `@makroz/core`'s `executeApiRequest`.
10
+ *
11
+ * Public return shape is byte-compatible with v1.2.3 so consumer
12
+ * call sites do not need to change.
13
+ */
2
14
  interface UseApiOptions {
3
15
  baseUrl?: string;
4
16
  headers?: Record<string, string>;
@@ -6,14 +18,16 @@ interface UseApiOptions {
6
18
  export declare function useApi<T = unknown>(options?: UseApiOptions): {
7
19
  status: ApiStatus;
8
20
  data: T | null;
9
- error: unknown;
21
+ error: string | null;
10
22
  waiting: number;
11
23
  loading: boolean;
12
- get: <R = T>(endpoint: string, params?: Record<string, string | number | boolean | Record<string, any>> | null) => Promise<MkResponse<R>>;
13
- post: <R = T>(endpoint: string, body: Record<string, unknown> | FormData | null) => Promise<MkResponse<R>>;
14
- put: <R = T>(endpoint: string, body: Record<string, unknown> | FormData | null) => Promise<MkResponse<R>>;
24
+ get: <R = T>(endpoint: string, params?: MkQueryParams) => Promise<MkResponse<R>>;
25
+ post: <R = T>(endpoint: string, body: unknown) => Promise<MkResponse<R>>;
26
+ put: <R = T>(endpoint: string, body: unknown) => Promise<MkResponse<R>>;
15
27
  delete: (endpoint: string) => Promise<MkResponse<void>>;
16
28
  remove: (endpoint: string) => Promise<MkResponse<void>>;
29
+ abort: () => void;
30
+ refetch: () => void;
17
31
  };
18
32
  export {};
19
33
  //# sourceMappingURL=useApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useApi.d.ts","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG1D,UAAU,aAAa;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AA4BD,wBAAgB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,GAAE,aAAkB;;;;;;UA8DlC,CAAC,gBACZ,MAAM,WACR,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI;WAGxD,CAAC,gBACb,MAAM,QACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,GAAG,IAAI;UAG1B,CAAC,gBACZ,MAAM,QACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,GAAG,IAAI;uBAGX,MAAM;uBACN,MAAM;EAcjD"}
1
+ {"version":3,"file":"useApi.d.ts","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAGnF;;;;;;;;;;GAUG;AAEH,UAAU,aAAa;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,wBAAgB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,GAAE,aAAkB;;;;;;UA8GtD,CAAC,gBAAgB,MAAM,WAAW,aAAa;WAK/C,CAAC,gBAAgB,MAAM,QAAQ,OAAO;UAKtC,CAAC,gBAAgB,MAAM,QAAQ,OAAO;uBAK5B,MAAM;uBAAN,MAAM;;;EAkBxB"}
@@ -1,81 +1,91 @@
1
- import { useState, useCallback, useRef } from 'react';
1
+ import { useCallback, useMemo, useRef, useState } from 'react';
2
+ import { executeApiRequest, ApiCoreError } from '@makroz/core';
2
3
  import { useMkApiContext } from '../context/MkApiContext';
3
- const buildQueryParams = (params) => {
4
- const query = new URLSearchParams();
5
- if (!params)
6
- return "";
7
- if (params.q)
8
- query.append('q', String(params.q));
9
- if (params.sort)
10
- query.append('sort', String(params.sort));
11
- if (params.page)
12
- query.append('page', String(params.page));
13
- if (params.per_page)
14
- query.append('per_page', String(params.per_page));
15
- if (params.filter && typeof params.filter === 'object') {
16
- Object.entries(params.filter).forEach(([field, value]) => {
17
- if (typeof value === 'object' && value !== null) {
18
- Object.entries(value).forEach(([op, opVal]) => {
19
- query.append(`filter[${field}][${op}]`, String(opVal));
20
- });
21
- }
22
- else {
23
- query.append(`filter[${field}]`, String(value));
24
- }
25
- });
26
- }
27
- const queryString = query.toString();
28
- return queryString ? `?${queryString}` : "";
29
- };
30
4
  export function useApi(options = {}) {
31
5
  const context = useMkApiContext();
6
+ const baseUrl = options.baseUrl || context.baseUrl;
7
+ const mergedHeaders = useMemo(() => { var _a, _b; return (Object.assign(Object.assign({}, ((_a = context.headers) !== null && _a !== void 0 ? _a : {})), ((_b = options.headers) !== null && _b !== void 0 ? _b : {}))); }, [context.headers, options.headers]);
8
+ // RN exposes the platform fetch via `globalThis.fetch` (or via
9
+ // `react-native-fetch-api` if installed). The wrapper does not
10
+ // bind it — RN's fetch is already bound to its module instance.
11
+ const fetchImpl = useMemo(() => globalThis.fetch, []);
32
12
  const [status, setStatus] = useState('idle');
33
13
  const [data, setData] = useState(null);
34
14
  const [error, setError] = useState(null);
35
- const baseUrl = options.baseUrl || context.baseUrl;
36
- const baseUrlRef = useRef(baseUrl);
37
- baseUrlRef.current = baseUrl;
38
- const optionsRef = useRef(options);
39
- optionsRef.current = options;
40
- const call = useCallback(async (endpoint, method = 'GET', body = null, params = null) => {
41
- setStatus('loading');
42
- setError(null);
43
- context.setWaiting(1, `call:${endpoint}`);
44
- const urlParams = method === 'GET' && params ? buildQueryParams(params) : "";
45
- const fullEndpoint = `${endpoint}${urlParams}`;
15
+ const controllerRef = useRef(null);
16
+ const lastRequestRef = useRef(null);
17
+ const abort = useCallback(() => {
18
+ var _a;
19
+ (_a = controllerRef.current) === null || _a === void 0 ? void 0 : _a.abort();
20
+ controllerRef.current = null;
21
+ }, []);
22
+ const call = useCallback(async (req) => {
23
+ var _a, _b;
24
+ (_a = controllerRef.current) === null || _a === void 0 ? void 0 : _a.abort();
25
+ const controller = new AbortController();
26
+ controllerRef.current = controller;
27
+ lastRequestRef.current = req;
28
+ context.setWaiting(1, `call:${req.endpoint}`);
46
29
  try {
47
- const reqHeaders = Object.assign(Object.assign({}, context.headers), optionsRef.current.headers);
48
- if (!(body instanceof FormData)) {
49
- reqHeaders['Content-Type'] = 'application/json';
50
- }
51
- const response = await fetch(`${baseUrlRef.current}${fullEndpoint}`, {
52
- method,
53
- headers: reqHeaders,
54
- body: body instanceof FormData ? body : (body ? JSON.stringify(body) : null),
30
+ setStatus('loading');
31
+ setError(null);
32
+ const result = await executeApiRequest({
33
+ baseUrl,
34
+ endpoint: req.endpoint,
35
+ method: req.method,
36
+ body: req.body,
37
+ params: req.params,
38
+ headers: mergedHeaders,
39
+ signal: controller.signal,
40
+ timeoutMs: req.timeoutMs,
41
+ fetchImpl,
55
42
  });
56
- const result = await response.json();
57
- if (!result.success) {
58
- throw new Error(result.message || 'API Error');
43
+ if (controller.signal.aborted && controllerRef.current !== controller) {
44
+ return result;
59
45
  }
60
46
  setData(result.data);
61
47
  setStatus('success');
62
48
  return result;
63
49
  }
64
50
  catch (err) {
65
- const errorMessage = err instanceof Error ? err.message : String(err);
66
- setError(errorMessage);
51
+ if (err instanceof Error && err.name === 'AbortError') {
52
+ throw err;
53
+ }
54
+ if (controllerRef.current !== controller) {
55
+ throw err;
56
+ }
57
+ const message = err instanceof Error
58
+ ? err.message
59
+ : typeof err === 'string'
60
+ ? err
61
+ : 'Unknown fetch error';
62
+ setError(message);
67
63
  setStatus('error');
68
- throw err;
64
+ throw err instanceof Error
65
+ ? err
66
+ : new ApiCoreError(message, {
67
+ status: 0,
68
+ statusText: 'unknown',
69
+ endpoint: req.endpoint,
70
+ method: ((_b = req.method) !== null && _b !== void 0 ? _b : 'GET'),
71
+ });
69
72
  }
70
73
  finally {
71
- context.setWaiting(-1, `-call:${endpoint}`);
74
+ context.setWaiting(-1, `-call:${req.endpoint}`);
75
+ if (controllerRef.current === controller) {
76
+ controllerRef.current = null;
77
+ }
72
78
  }
73
- }, [context]);
74
- const get = useCallback((endpoint, params = null) => call(endpoint, 'GET', null, params), [call]);
75
- const post = useCallback((endpoint, body) => call(endpoint, 'POST', body), [call]);
76
- const put = useCallback((endpoint, body) => call(endpoint, 'PUT', body), [call]);
77
- const deleteFn = useCallback((endpoint) => call(endpoint, 'DELETE'), [call]);
78
- const removeFn = useCallback((endpoint) => call(endpoint, 'DELETE'), [call]);
79
+ }, [baseUrl, mergedHeaders, fetchImpl, context]);
80
+ const refetch = useCallback(() => {
81
+ const last = lastRequestRef.current;
82
+ if (last)
83
+ void call(last);
84
+ }, [call]);
85
+ const get = useCallback((endpoint, params) => call({ endpoint, method: 'GET', params }), [call]);
86
+ const post = useCallback((endpoint, body) => call({ endpoint, method: 'POST', body }), [call]);
87
+ const put = useCallback((endpoint, body) => call({ endpoint, method: 'PUT', body }), [call]);
88
+ const deleteFn = useCallback((endpoint) => call({ endpoint, method: 'DELETE' }), [call]);
79
89
  return {
80
90
  status,
81
91
  data,
@@ -86,7 +96,9 @@ export function useApi(options = {}) {
86
96
  post,
87
97
  put,
88
98
  delete: deleteFn,
89
- remove: removeFn,
99
+ remove: deleteFn,
100
+ abort,
101
+ refetch,
90
102
  };
91
103
  }
92
104
  //# sourceMappingURL=useApi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useApi.js","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useApi.js","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export interface InfiniteListOptions {
7
7
  export declare function useMkInfiniteList(endpoint: string, options?: InfiniteListOptions): {
8
8
  items: any[];
9
9
  loading: boolean;
10
- error: unknown;
10
+ error: string | null;
11
11
  isRefreshing: boolean;
12
12
  hasMore: boolean;
13
13
  loadMore: () => void;
@@ -25,19 +25,7 @@ export interface MkListParams {
25
25
  per_page?: number;
26
26
  q?: string;
27
27
  sort?: string;
28
- filter?: Record<string, unknown>;
29
- }
30
- /** Shape of the server response for paginated lists. */
31
- export interface MkListResponse<T = unknown> {
32
- data: T[];
33
- __extraData?: {
34
- current_page?: number;
35
- last_page?: number;
36
- per_page?: number;
37
- total?: number;
38
- [key: string]: unknown;
39
- };
40
- [key: string]: unknown;
28
+ filter?: Record<string, any>;
41
29
  }
42
30
  export interface MkListOptions {
43
31
  /** Initial params. */
@@ -56,24 +44,18 @@ export declare function useMkList(endpoint: string, options?: MkListOptions): {
56
44
  setSort: (sort: string) => void;
57
45
  setPerPage: (per_page: number) => void;
58
46
  resetFilters: () => void;
59
- refresh: (extraParams?: MkListParams) => Promise<import("@makroz/core").MkResponse<MkListResponse<unknown>>>;
47
+ refresh: (extraParams?: MkListParams) => Promise<import("@makroz/core").MkResponse<unknown>>;
60
48
  /** Pagination meta from __extraData */
61
- pagination: {
62
- [key: string]: unknown;
63
- current_page?: number;
64
- last_page?: number;
65
- per_page?: number;
66
- total?: number;
67
- };
49
+ pagination: any;
68
50
  status: import("@makroz/core").ApiStatus;
69
- data: MkListResponse<unknown> | null;
70
- error: unknown;
51
+ data: any;
52
+ error: any;
71
53
  waiting: number;
72
54
  loading: boolean;
73
- get: <R = MkListResponse<unknown>>(endpoint: string, params?: Record<string, string | number | boolean | Record<string, any>> | null) => Promise<import("@makroz/core").MkResponse<R>>;
74
- post: <R = MkListResponse<unknown>>(endpoint: string, body: Record<string, unknown> | FormData | null) => Promise<import("@makroz/core").MkResponse<R>>;
75
- put: <R = MkListResponse<unknown>>(endpoint: string, body: Record<string, unknown> | FormData | null) => Promise<import("@makroz/core").MkResponse<R>>;
76
- delete: (endpoint: string) => Promise<import("@makroz/core").MkResponse<void>>;
77
- remove: (endpoint: string) => Promise<import("@makroz/core").MkResponse<void>>;
55
+ get: (endpoint: string, params?: any) => Promise<import("@makroz/core").MkResponse<unknown>>;
56
+ post: (endpoint: string, body: any) => Promise<import("@makroz/core").MkResponse<unknown>>;
57
+ put: (endpoint: string, body: any) => Promise<import("@makroz/core").MkResponse<unknown>>;
58
+ delete: (endpoint: string) => Promise<import("@makroz/core").MkResponse<unknown>>;
59
+ remove: (endpoint: string) => Promise<import("@makroz/core").MkResponse<unknown>>;
78
60
  };
79
61
  //# sourceMappingURL=useMkList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMkList.d.ts","sourceRoot":"","sources":["../../src/hooks/useMkList.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,wDAAwD;AACxD,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACvC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,WAAW,CAAC,EAAE;QACV,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC1B,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC1B,sBAAsB;IACtB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB;;;uBAiB7B,MAAM,SAAS,GAAG;oBAQrB,MAAM;mBAIP,MAAM;oBAIL,MAAM;2BAIC,MAAM;;4BA1B9B,YAAY;IA0D1B,uCAAuC;;;uBAvFxB,MAAM;oBACT,MAAM;mBACP,MAAM;gBACT,MAAM;;;;;;;;;;;;EAuFrB"}
1
+ {"version":3,"file":"useMkList.d.ts","sourceRoot":"","sources":["../../src/hooks/useMkList.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,wDAAwD;AACxD,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACvC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,WAAW,CAAC,EAAE;QACV,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC1B,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC1B,sBAAsB;IACtB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB;;;uBA+B7B,MAAM,SAAS,GAAG;oBAQrB,MAAM;mBAIP,MAAM;oBAIL,MAAM;2BAIC,MAAM;;4BAjCxB,YAAY;IAiEhC,yFAAyF;;;;;;;;;;;;;;EAGhG"}
@@ -1,14 +1,28 @@
1
1
  import { useState, useCallback, useEffect, useRef } from 'react';
2
2
  import { useApi } from './useApi';
3
3
  export function useMkList(endpoint, options = {}) {
4
- var _a;
5
4
  const { initialParams = {}, autoFetch = true } = options;
6
5
  const api = useApi();
7
6
  const [params, setParams] = useState(Object.assign({ page: 1, per_page: 15 }, initialParams));
7
+ // R-PKG-023 (rc12): capture __extraData from the response envelope
8
+ // (top-level, sibling of `data`, per the @makroz/core MkResponse<T>
9
+ // contract). The previous implementation read from `api.data?.__extraData`
10
+ // which worked for the legacy nested shape but breaks once the Laravel
11
+ // backend emits the canonical top-level shape. We auto-detect: top-level
12
+ // first, then fallback to legacy nested.
13
+ const [extraData, setExtraData] = useState({});
8
14
  const mountedRef = useRef(false);
9
- const refresh = useCallback((extraParams = {}) => {
10
- return api.get(endpoint, Object.assign(Object.assign({}, params), extraParams));
11
- }, [endpoint, params]);
15
+ const refresh = useCallback(async (extraParams = {}) => {
16
+ var _a, _b;
17
+ const response = await api.get(endpoint, Object.assign(Object.assign({}, params), extraParams));
18
+ // Auto-detect response shape (R-PKG-023):
19
+ // - Top-level (rc12+ with flag): `response.__extraData` exists.
20
+ // - Legacy nested (rc11 and earlier): `response.data?.__extraData`.
21
+ const topLevel = response.__extraData;
22
+ const nested = (_a = response.data) === null || _a === void 0 ? void 0 : _a.__extraData;
23
+ setExtraData((_b = topLevel !== null && topLevel !== void 0 ? topLevel : nested) !== null && _b !== void 0 ? _b : {});
24
+ return response;
25
+ }, [endpoint, params, api]);
12
26
  const setFilter = useCallback((field, value) => {
13
27
  setParams(prev => (Object.assign(Object.assign({}, prev), { page: 1, filter: Object.assign(Object.assign({}, prev.filter), { [field]: value }) })));
14
28
  }, []);
@@ -34,12 +48,12 @@ export function useMkList(endpoint, options = {}) {
34
48
  // Skip the initial mount — let the consumer decide
35
49
  if (!mountedRef.current) {
36
50
  mountedRef.current = true;
37
- refresh();
51
+ void refresh();
38
52
  return;
39
53
  }
40
- refresh();
54
+ void refresh();
41
55
  // eslint-disable-next-line react-hooks/exhaustive-deps
42
- }, [params]);
56
+ }, [params, refresh]);
43
57
  return Object.assign(Object.assign({}, api), { params,
44
58
  setParams,
45
59
  setFilter,
@@ -49,7 +63,7 @@ export function useMkList(endpoint, options = {}) {
49
63
  setPerPage,
50
64
  resetFilters,
51
65
  refresh,
52
- /** Pagination meta from __extraData */
53
- pagination: ((_a = api.data) === null || _a === void 0 ? void 0 : _a.__extraData) || {} });
66
+ /** Pagination meta from __extraData (R-PKG-023: top-level, fallback to legacy nested) */
67
+ pagination: extraData });
54
68
  }
55
69
  //# sourceMappingURL=useMkList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMkList.js","sourceRoot":"","sources":["../../src/hooks/useMkList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMkList.js","sourceRoot":"","sources":["../../src/hooks/useMkList.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useMkList.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkList.test.d.ts","sourceRoot":"","sources":["../../src/hooks/useMkList.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,138 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { renderHook, act, waitFor } from '@testing-library/react';
3
+ import { useMkList } from './useMkList';
4
+ // Mock the MkApiContext
5
+ const mockSetWaiting = vi.fn();
6
+ const mockContext = {
7
+ baseUrl: 'http://localhost:8000/api',
8
+ headers: {},
9
+ waiting: 0,
10
+ setWaiting: mockSetWaiting,
11
+ };
12
+ vi.mock('../context/MkApiContext', () => ({
13
+ useMkApiContext: () => mockContext,
14
+ }));
15
+ // Mock fetch globally
16
+ const mockFetch = vi.fn();
17
+ global.fetch = mockFetch;
18
+ describe('useMkList (R-PKG-023 response shape auto-detect, mobile)', () => {
19
+ beforeEach(() => {
20
+ vi.clearAllMocks();
21
+ mockFetch.mockReset();
22
+ });
23
+ it('reads __extraData from the canonical TOP-LEVEL location (R-PKG-023 rc12+)', async () => {
24
+ // Canonical top-level shape — the @makroz/core MkResponse<T> contract.
25
+ const mockResponse = {
26
+ success: true,
27
+ message: 'OK',
28
+ data: [
29
+ { id: 1, name: 'Item 1' },
30
+ { id: 2, name: 'Item 2' },
31
+ ],
32
+ __extraData: {
33
+ total: 150,
34
+ current_page: 1,
35
+ last_page: 15,
36
+ per_page: 10,
37
+ },
38
+ };
39
+ mockFetch.mockResolvedValueOnce({
40
+ ok: true,
41
+ json: () => Promise.resolve(mockResponse),
42
+ });
43
+ const { result } = renderHook(() => useMkList('/items', { autoFetch: false }));
44
+ await act(async () => {
45
+ await result.current.refresh();
46
+ });
47
+ await waitFor(() => {
48
+ expect(result.current.pagination).toEqual({
49
+ total: 150,
50
+ current_page: 1,
51
+ last_page: 15,
52
+ per_page: 10,
53
+ });
54
+ });
55
+ expect(result.current.data).toEqual(mockResponse.data);
56
+ });
57
+ it('falls back to the LEGACY nested __extraData location (rc11 and earlier)', async () => {
58
+ // Legacy nested shape — Laravel pre-rc12 wrapped `data` in a
59
+ // `{ data: [...], __extraData: {...} }` envelope.
60
+ const mockResponse = {
61
+ success: true,
62
+ message: 'OK',
63
+ data: {
64
+ data: [
65
+ { id: 1, name: 'Item 1' },
66
+ { id: 2, name: 'Item 2' },
67
+ ],
68
+ __extraData: {
69
+ total: 75,
70
+ current_page: 1,
71
+ last_page: 8,
72
+ per_page: 10,
73
+ },
74
+ },
75
+ };
76
+ mockFetch.mockResolvedValueOnce({
77
+ ok: true,
78
+ json: () => Promise.resolve(mockResponse),
79
+ });
80
+ const { result } = renderHook(() => useMkList('/items', { autoFetch: false }));
81
+ await act(async () => {
82
+ await result.current.refresh();
83
+ });
84
+ await waitFor(() => {
85
+ expect(result.current.pagination).toEqual({
86
+ total: 75,
87
+ current_page: 1,
88
+ last_page: 8,
89
+ per_page: 10,
90
+ });
91
+ });
92
+ });
93
+ it('returns empty pagination when neither top-level nor nested __extraData exists', async () => {
94
+ // Minimal response with no __extraData at all.
95
+ const mockResponse = {
96
+ success: true,
97
+ message: 'OK',
98
+ data: [{ id: 1, name: 'Item 1' }],
99
+ };
100
+ mockFetch.mockResolvedValueOnce({
101
+ ok: true,
102
+ json: () => Promise.resolve(mockResponse),
103
+ });
104
+ const { result } = renderHook(() => useMkList('/items', { autoFetch: false }));
105
+ await act(async () => {
106
+ await result.current.refresh();
107
+ });
108
+ await waitFor(() => {
109
+ expect(result.current.data).toEqual([{ id: 1, name: 'Item 1' }]);
110
+ });
111
+ expect(result.current.pagination).toEqual({});
112
+ });
113
+ it('prefers top-level __extraData over nested when both are present (defensive)', async () => {
114
+ // Edge case: backend accidentally emits BOTH top-level AND nested.
115
+ // Top-level wins because that's the canonical contract.
116
+ const mockResponse = {
117
+ success: true,
118
+ message: 'OK',
119
+ data: {
120
+ data: [{ id: 1 }],
121
+ __extraData: { total: 99, source: 'nested' },
122
+ },
123
+ __extraData: { total: 100, source: 'top-level' },
124
+ };
125
+ mockFetch.mockResolvedValueOnce({
126
+ ok: true,
127
+ json: () => Promise.resolve(mockResponse),
128
+ });
129
+ const { result } = renderHook(() => useMkList('/items', { autoFetch: false }));
130
+ await act(async () => {
131
+ await result.current.refresh();
132
+ });
133
+ await waitFor(() => {
134
+ expect(result.current.pagination).toEqual({ total: 100, source: 'top-level' });
135
+ });
136
+ });
137
+ });
138
+ //# sourceMappingURL=useMkList.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkList.test.js","sourceRoot":"","sources":["../../src/hooks/useMkList.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "@makroz/mobile",
3
- "version": "1.2.2",
3
+ "version": "1.2.4-rc14",
4
4
  "description": "React Native UI components and hooks for MK-Director mobile applications",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "type": "module",
8
+ "bin": {
9
+ "mk-update": "./bin/mk-update.js"
10
+ },
8
11
  "exports": {
9
12
  ".": {
10
13
  "types": "./dist/index.d.ts",
@@ -15,7 +18,8 @@
15
18
  },
16
19
  "files": [
17
20
  "dist",
18
- "eslint-plugin-mk"
21
+ "eslint-plugin-mk",
22
+ "bin"
19
23
  ],
20
24
  "publishConfig": {
21
25
  "access": "public"
@@ -29,7 +33,7 @@
29
33
  "@react-native-async-storage/async-storage": "^3.0.2",
30
34
  "@shopify/flash-list": "^2.0.0",
31
35
  "react-native-svg": "^15.15.4",
32
- "@makroz/core": "1.1.4"
36
+ "@makroz/core": "1.1.6-rc14"
33
37
  },
34
38
  "peerDependencies": {
35
39
  "@shopify/flash-list": ">=2.0.0",
@@ -41,7 +45,13 @@
41
45
  "expo-sqlite": "~56.0.5",
42
46
  "expo-updates": "~56.0.19",
43
47
  "react": "^19.0.0",
44
- "react-native": "0.85.x"
48
+ "react-native": "0.85.x",
49
+ "react-native-buffer": "^6.0.1"
50
+ },
51
+ "peerDependenciesMeta": {
52
+ "react-native-buffer": {
53
+ "optional": true
54
+ }
45
55
  },
46
56
  "devDependencies": {
47
57
  "@testing-library/react": "^16.3.2",
@@ -51,6 +61,7 @@
51
61
  "@vitest/coverage-v8": "^3.0.0",
52
62
  "esbuild": "^0.25.0",
53
63
  "eslint": "^9.20.0",
64
+ "jsdom": "^24.0.0",
54
65
  "react": "^19.0.0",
55
66
  "react-test-renderer": "^19.2.7",
56
67
  "typescript": "^5.7.0",