mirror of
https://github.com/EthanShoeDev/fressh.git
synced 2026-01-11 14:22:51 +00:00
drop old ssh lib lint passing
This commit is contained in:
@@ -7,7 +7,8 @@
|
|||||||
"**/dist/**",
|
"**/dist/**",
|
||||||
"**/node_modules/**",
|
"**/node_modules/**",
|
||||||
"**/android/**",
|
"**/android/**",
|
||||||
"**/generated/**"
|
"**/generated/**",
|
||||||
|
"**/rust/target/**"
|
||||||
],
|
],
|
||||||
"threshold": 0,
|
"threshold": 0,
|
||||||
"minTokens": 50,
|
"minTokens": 50,
|
||||||
|
|||||||
@@ -46,34 +46,6 @@ const config: ExpoConfig = {
|
|||||||
'expo-secure-store',
|
'expo-secure-store',
|
||||||
'expo-font',
|
'expo-font',
|
||||||
'expo-dev-client',
|
'expo-dev-client',
|
||||||
'expo-web-browser',
|
|
||||||
[
|
|
||||||
'expo-build-properties',
|
|
||||||
{
|
|
||||||
android: {
|
|
||||||
// dylankenneally/react-native-ssh-sftp fails to build without this
|
|
||||||
packagingOptions: {
|
|
||||||
pickFirst: ['META-INF/versions/9/OSGI-INF/MANIFEST.MF'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
ios: {
|
|
||||||
// https://github.com/dylankenneally/react-native-ssh-sftp/issues/20#issuecomment-3286693445
|
|
||||||
// ../../docs/ios-sim-not-working.md (Update 1)
|
|
||||||
extraPods: [
|
|
||||||
{
|
|
||||||
name: 'CSSH-Binary',
|
|
||||||
podspec:
|
|
||||||
'https://gist.githubusercontent.com/EthanShoeDev/1ab212949007d7aeabfeb199b7b9e951/raw/8602ec55efdf8c620dbbae93cd54023e2a36a8b9/CSSH-Binary.podspec',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'NMSSH',
|
|
||||||
git: 'https://github.com/EthanShoeDev/NMSSH.git',
|
|
||||||
branch: 'master',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
],
|
||||||
experiments: { typedRoutes: true, reactCompiler: true },
|
experiments: { typedRoutes: true, reactCompiler: true },
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -25,7 +25,6 @@
|
|||||||
"adb:logs": "while ! adb logcat --pid=$(adb shell pidof -s dev.fressh.app); do sleep 1; done"
|
"adb:logs": "while ! adb logcat --pid=$(adb shell pidof -s dev.fressh.app); do sleep 1; done"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@dylankenneally/react-native-ssh-sftp": "^1.5.20",
|
|
||||||
"@expo/vector-icons": "^15.0.2",
|
"@expo/vector-icons": "^15.0.2",
|
||||||
"@fressh/assets": "workspace:*",
|
"@fressh/assets": "workspace:*",
|
||||||
"@fressh/react-native-uniffi-russh": "workspace:*",
|
"@fressh/react-native-uniffi-russh": "workspace:*",
|
||||||
@@ -37,7 +36,6 @@
|
|||||||
"@tanstack/react-form": "^1.19.5",
|
"@tanstack/react-form": "^1.19.5",
|
||||||
"@tanstack/react-query": "^5.87.1",
|
"@tanstack/react-query": "^5.87.1",
|
||||||
"expo": "54.0.7",
|
"expo": "54.0.7",
|
||||||
"expo-build-properties": "~1.0.8",
|
|
||||||
"expo-clipboard": "~8.0.7",
|
"expo-clipboard": "~8.0.7",
|
||||||
"expo-constants": "~18.0.8",
|
"expo-constants": "~18.0.8",
|
||||||
"expo-crypto": "~15.0.7",
|
"expo-crypto": "~15.0.7",
|
||||||
@@ -54,7 +52,6 @@
|
|||||||
"expo-status-bar": "~3.0.8",
|
"expo-status-bar": "~3.0.8",
|
||||||
"expo-symbols": "~1.0.7",
|
"expo-symbols": "~1.0.7",
|
||||||
"expo-system-ui": "~6.0.7",
|
"expo-system-ui": "~6.0.7",
|
||||||
"expo-web-browser": "~15.0.7",
|
|
||||||
"react": "19.1.0",
|
"react": "19.1.0",
|
||||||
"react-dom": "19.1.0",
|
"react-dom": "19.1.0",
|
||||||
"react-native": "0.81.4",
|
"react-native": "0.81.4",
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import SSHClient, { PtyType } from '@dylankenneally/react-native-ssh-sftp';
|
import { connect, PtyType, Security } from '@fressh/react-native-uniffi-russh';
|
||||||
import SegmentedControl from '@react-native-segmented-control/segmented-control';
|
import SegmentedControl from '@react-native-segmented-control/segmented-control';
|
||||||
import { useStore } from '@tanstack/react-form';
|
import { useStore } from '@tanstack/react-form';
|
||||||
import { useMutation, useQuery } from '@tanstack/react-query';
|
import { useMutation, useQuery } from '@tanstack/react-query';
|
||||||
@@ -13,7 +13,6 @@ import {
|
|||||||
secretsManager,
|
secretsManager,
|
||||||
} from '../lib/secrets-manager';
|
} from '../lib/secrets-manager';
|
||||||
import { sshConnectionManager } from '../lib/ssh-connection-manager';
|
import { sshConnectionManager } from '../lib/ssh-connection-manager';
|
||||||
import '../lib/test-uniffi-russh';
|
|
||||||
const defaultValues: ConnectionDetails = {
|
const defaultValues: ConnectionDetails = {
|
||||||
host: 'test.rebex.net',
|
host: 'test.rebex.net',
|
||||||
port: 22,
|
port: 22,
|
||||||
@@ -28,52 +27,40 @@ const useSshConnMutation = () => {
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
return useMutation({
|
return useMutation({
|
||||||
mutationFn: async (value: ConnectionDetails) => {
|
mutationFn: async (connectionDetails: ConnectionDetails) => {
|
||||||
try {
|
try {
|
||||||
console.log('Connecting to SSH server...');
|
console.log('Connecting to SSH server...');
|
||||||
const effective = await (async () => {
|
const sshConnection = await connect(
|
||||||
if (value.security.type === 'password') return value;
|
{
|
||||||
if (value.security.keyId) return value;
|
host: connectionDetails.host,
|
||||||
const keys = await secretsManager.keys.utils.listEntriesWithValues();
|
port: connectionDetails.port,
|
||||||
const def = keys.find((k) => k.metadata?.isDefault);
|
username: connectionDetails.username,
|
||||||
const pick = def ?? keys[0];
|
security:
|
||||||
if (pick) {
|
connectionDetails.security.type === 'password'
|
||||||
return {
|
? new Security.Password({
|
||||||
...value,
|
password: connectionDetails.security.password,
|
||||||
security: { type: 'key', keyId: pick.id },
|
})
|
||||||
} as ConnectionDetails;
|
: new Security.Key({ keyId: connectionDetails.security.keyId }),
|
||||||
}
|
},
|
||||||
return value;
|
{
|
||||||
})();
|
onStatusChange: (status) => {
|
||||||
|
console.log('SSH connection status', status);
|
||||||
const sshClientConnection = await (async () => {
|
},
|
||||||
if (effective.security.type === 'password') {
|
},
|
||||||
return await SSHClient.connectWithPassword(
|
);
|
||||||
effective.host,
|
|
||||||
effective.port,
|
|
||||||
effective.username,
|
|
||||||
effective.security.password,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
const privateKey = await secretsManager.keys.utils.getPrivateKey(
|
|
||||||
effective.security.keyId,
|
|
||||||
);
|
|
||||||
return await SSHClient.connectWithKey(
|
|
||||||
effective.host,
|
|
||||||
effective.port,
|
|
||||||
effective.username,
|
|
||||||
privateKey.value,
|
|
||||||
);
|
|
||||||
})();
|
|
||||||
|
|
||||||
await secretsManager.connections.utils.upsertConnection({
|
await secretsManager.connections.utils.upsertConnection({
|
||||||
id: 'default',
|
id: 'default',
|
||||||
details: effective,
|
details: connectionDetails,
|
||||||
priority: 0,
|
priority: 0,
|
||||||
});
|
});
|
||||||
await sshClientConnection.startShell(PtyType.XTERM);
|
await sshConnection.startShell(PtyType.Xterm, {
|
||||||
|
onStatusChange: (status) => {
|
||||||
|
console.log('SSH shell status', status);
|
||||||
|
},
|
||||||
|
});
|
||||||
const sshConn = sshConnectionManager.addSession({
|
const sshConn = sshConnectionManager.addSession({
|
||||||
client: sshClientConnection,
|
client: sshConnection,
|
||||||
});
|
});
|
||||||
console.log('Connected to SSH server', sshConn.sessionId);
|
console.log('Connected to SSH server', sshConn.sessionId);
|
||||||
router.push({
|
router.push({
|
||||||
|
|||||||
@@ -22,31 +22,34 @@ export default function Shell() {
|
|||||||
const [shellData, setShellData] = useState('');
|
const [shellData, setShellData] = useState('');
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
sshConn.client.on('Shell', (data) => {
|
// sshConn.client.on('Shell', (data) => {
|
||||||
console.log('Received data (on Shell):', data);
|
// console.log('Received data (on Shell):', data);
|
||||||
setShellData((prev) => prev + data);
|
// setShellData((prev) => prev + data);
|
||||||
|
// });
|
||||||
|
sshConn.client.addChannelListener({
|
||||||
|
onData: (data) => {
|
||||||
|
console.log('Received data (on Shell):', data);
|
||||||
|
setShellData((prev) => prev + data);
|
||||||
|
},
|
||||||
});
|
});
|
||||||
return () => {
|
return () => {
|
||||||
// // Remove the handler by clearing the internal handler map.
|
sshConn.client.removeChannelListener({
|
||||||
// // The library lacks a public `.off()`, but it routes through a single
|
onData: () => {},
|
||||||
// // handler map per event name. Deleting the handler prevents updates.
|
});
|
||||||
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
// delete (sshConn.client as any)._handlers?.Shell;
|
|
||||||
|
|
||||||
// Set to no-op
|
|
||||||
sshConn.client.on('Shell', () => {});
|
|
||||||
};
|
};
|
||||||
}, [setShellData, sshConn.client]);
|
}, [setShellData, sshConn.client]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
return () => {
|
return () => {
|
||||||
console.log('Clean up shell screen (immediate disconnect)');
|
console.log('Clean up shell screen (immediate disconnect)');
|
||||||
try {
|
void sshConnectionManager
|
||||||
sshConnectionManager.removeAndDisconnectSession({ sessionId });
|
.removeAndDisconnectSession({ sessionId })
|
||||||
console.log('Disconnected from SSH server');
|
.then(() => {
|
||||||
} catch (error) {
|
console.log('Disconnected from SSH server');
|
||||||
console.error('Error disconnecting from SSH server', error);
|
})
|
||||||
}
|
.catch((e: unknown) => {
|
||||||
|
console.error('Error disconnecting from SSH server', e);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
}, [sessionId]);
|
}, [sessionId]);
|
||||||
|
|
||||||
@@ -74,7 +77,9 @@ export default function Shell() {
|
|||||||
<CommandInput
|
<CommandInput
|
||||||
executeCommand={async (command) => {
|
executeCommand={async (command) => {
|
||||||
console.log('Executing command:', command);
|
console.log('Executing command:', command);
|
||||||
await sshConn.client.writeToShell(command + '\n');
|
await sshConn.client.sendData(
|
||||||
|
Uint8Array.from(new TextEncoder().encode(command + '\n')).buffer,
|
||||||
|
);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export function KeyManagerModal(props: {
|
|||||||
await secretsManager.keys.utils.upsertPrivateKey({
|
await secretsManager.keys.utils.upsertPrivateKey({
|
||||||
keyId: id,
|
keyId: id,
|
||||||
metadata: { priority: 0, label: 'New Key', isDefault: false },
|
metadata: { priority: 0, label: 'New Key', isDefault: false },
|
||||||
value: pair.privateKey,
|
value: pair,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import SSHClient from '@dylankenneally/react-native-ssh-sftp';
|
import * as Russh from '@fressh/react-native-uniffi-russh';
|
||||||
import { queryOptions } from '@tanstack/react-query';
|
import { queryOptions } from '@tanstack/react-query';
|
||||||
import * as Crypto from 'expo-crypto';
|
import * as Crypto from 'expo-crypto';
|
||||||
import * as SecureStore from 'expo-secure-store';
|
import * as SecureStore from 'expo-secure-store';
|
||||||
@@ -443,11 +443,11 @@ async function generateKeyPair(params: {
|
|||||||
keySize?: number;
|
keySize?: number;
|
||||||
comment?: string;
|
comment?: string;
|
||||||
}) {
|
}) {
|
||||||
const keyPair = await SSHClient.generateKeyPair(
|
console.log('DEBUG: generating key pair', params);
|
||||||
params.type,
|
const keyPair = await Russh.generateKeyPair(
|
||||||
params.passphrase ?? '',
|
Russh.KeyType.Ed25519,
|
||||||
params.keySize,
|
// params.keySize,
|
||||||
params.comment ?? '',
|
// params.comment ?? '',
|
||||||
);
|
);
|
||||||
return keyPair;
|
return keyPair;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
import type SSHClient from '@dylankenneally/react-native-ssh-sftp';
|
import { type SshConnectionInterface } from '@fressh/react-native-uniffi-russh';
|
||||||
import * as Crypto from 'expo-crypto';
|
import * as Crypto from 'expo-crypto';
|
||||||
|
|
||||||
export type SSHConn = {
|
export type SSHConn = {
|
||||||
client: SSHClient;
|
client: SshConnectionInterface;
|
||||||
sessionId: string;
|
sessionId: string;
|
||||||
createdAt: Date;
|
createdAt: Date;
|
||||||
};
|
};
|
||||||
|
|
||||||
const sshConnections = new Map<string, SSHConn>();
|
const sshConnections = new Map<string, SSHConn>();
|
||||||
|
|
||||||
function addSession(params: { client: SSHClient }) {
|
function addSession(params: { client: SshConnectionInterface }) {
|
||||||
const sessionId = Crypto.randomUUID();
|
const sessionId = Crypto.randomUUID();
|
||||||
const createdAt = new Date();
|
const createdAt = new Date();
|
||||||
const sshConn: SSHConn = {
|
const sshConn: SSHConn = {
|
||||||
@@ -27,10 +26,10 @@ function getSession(params: { sessionId: string }) {
|
|||||||
return sshConn;
|
return sshConn;
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeAndDisconnectSession(params: { sessionId: string }) {
|
async function removeAndDisconnectSession(params: { sessionId: string }) {
|
||||||
const sshConn = getSession(params);
|
const sshConn = getSession(params);
|
||||||
// sshConn.client.closeShell()
|
// sshConn.client.closeShell()
|
||||||
sshConn.client.disconnect();
|
await sshConn.client.disconnect();
|
||||||
sshConnections.delete(params.sessionId);
|
sshConnections.delete(params.sessionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,86 +0,0 @@
|
|||||||
import {
|
|
||||||
generateKeyPair,
|
|
||||||
KeyType,
|
|
||||||
uniffiInitAsync,
|
|
||||||
} from '@fressh/react-native-uniffi-russh';
|
|
||||||
|
|
||||||
void uniffiInitAsync().then(() => {
|
|
||||||
void generateKeyPair(KeyType.Ed25519).then((keyPair) => {
|
|
||||||
console.log('testKeyPair', keyPair);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// // https://jhugman.github.io/uniffi-bindgen-react-native/idioms/common-types.html
|
|
||||||
// // https://jhugman.github.io/uniffi-bindgen-react-native/idioms/callback-interfaces.html
|
|
||||||
// // https://jhugman.github.io/uniffi-bindgen-react-native/idioms/async-callbacks.html
|
|
||||||
|
|
||||||
// const connectionDetailsSchema = z.object({
|
|
||||||
// host: z.string().min(1),
|
|
||||||
// port: z.number().min(1),
|
|
||||||
// username: z.string().min(1),
|
|
||||||
// security: z.discriminatedUnion('type', [
|
|
||||||
// z.object({
|
|
||||||
// type: z.literal('password'),
|
|
||||||
// password: z.string().min(1),
|
|
||||||
// }),
|
|
||||||
// z.object({
|
|
||||||
// type: z.literal('key'),
|
|
||||||
// keyId: z.string().min(1),
|
|
||||||
// }),
|
|
||||||
// ]),
|
|
||||||
// });
|
|
||||||
|
|
||||||
// The ideal interface
|
|
||||||
|
|
||||||
// const connectionDetailsSchema = z.object({
|
|
||||||
// host: z.string().min(1),
|
|
||||||
// port: z.number().min(1),
|
|
||||||
// username: z.string().min(1),
|
|
||||||
// // There is a section on tagged enums: https://jhugman.github.io/uniffi-bindgen-react-native/idioms/enums.html#enums-with-properties
|
|
||||||
// security: z.discriminatedUnion('type', [
|
|
||||||
// z.object({
|
|
||||||
// type: z.literal('password'),
|
|
||||||
// password: z.string().min(1),
|
|
||||||
// }),
|
|
||||||
// z.object({
|
|
||||||
// type: z.literal('key'),
|
|
||||||
// keyId: z.string().min(1),
|
|
||||||
// }),
|
|
||||||
// ]),
|
|
||||||
// });
|
|
||||||
|
|
||||||
// type ConnectionDetails = z.infer<typeof connectionDetailsSchema>;
|
|
||||||
|
|
||||||
// type SSHConnectionStatus =
|
|
||||||
// | 'tcp-connecting'
|
|
||||||
// | 'tcp-connected'
|
|
||||||
// | 'tcp-disconnected'
|
|
||||||
// | 'shell-connecting'
|
|
||||||
// | 'shell-connected'
|
|
||||||
// | 'shell-disconnected';
|
|
||||||
|
|
||||||
// type SSHConnection = {
|
|
||||||
// connectionDetails: ConnectionDetails;
|
|
||||||
// sessionId: string;
|
|
||||||
// createdAtMs: number;
|
|
||||||
// establishedAtMs: number;
|
|
||||||
// // I am not sure this is the best way to do this within uniffi.
|
|
||||||
// addListener: (listener: (data: ArrayBuffer) => void) => void;
|
|
||||||
// removeListener: (listener: (data: ArrayBuffer) => void) => void;
|
|
||||||
|
|
||||||
// // Also not sure if this is the best way
|
|
||||||
// sendData: (data: ArrayBuffer) => Promise<void>;
|
|
||||||
// disconnect: () => Promise<void>;
|
|
||||||
// };
|
|
||||||
|
|
||||||
// type SSHConnectParams = {
|
|
||||||
// connectionDetails: ConnectionDetails;
|
|
||||||
// onStatusChange: (status: SSHConnectionStatus) => void;
|
|
||||||
// };
|
|
||||||
|
|
||||||
// type RustInterface = {
|
|
||||||
// requestSshConnection: (params: SSHConnectParams) => Promise<SSHConnection>;
|
|
||||||
// generateKeyPair: (
|
|
||||||
// type: 'rsa' | 'ecdsa' | 'ed25519' | 'ed448',
|
|
||||||
// ) => Promise<string>;
|
|
||||||
// };
|
|
||||||
224
pnpm-lock.yaml
generated
224
pnpm-lock.yaml
generated
@@ -40,9 +40,6 @@ importers:
|
|||||||
|
|
||||||
apps/mobile:
|
apps/mobile:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@dylankenneally/react-native-ssh-sftp':
|
|
||||||
specifier: ^1.5.20
|
|
||||||
version: 1.5.20(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))
|
|
||||||
'@expo/vector-icons':
|
'@expo/vector-icons':
|
||||||
specifier: ^15.0.2
|
specifier: ^15.0.2
|
||||||
version: 15.0.2(expo-font@14.0.8(expo@54.0.7)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
version: 15.0.2(expo-font@14.0.8(expo@54.0.7)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
||||||
@@ -76,9 +73,6 @@ importers:
|
|||||||
expo:
|
expo:
|
||||||
specifier: 54.0.7
|
specifier: 54.0.7
|
||||||
version: 54.0.7(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.4)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
version: 54.0.7(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.4)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
||||||
expo-build-properties:
|
|
||||||
specifier: ~1.0.8
|
|
||||||
version: 1.0.8(expo@54.0.7)
|
|
||||||
expo-clipboard:
|
expo-clipboard:
|
||||||
specifier: ~8.0.7
|
specifier: ~8.0.7
|
||||||
version: 8.0.7(expo@54.0.7)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
version: 8.0.7(expo@54.0.7)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
||||||
@@ -127,9 +121,6 @@ importers:
|
|||||||
expo-system-ui:
|
expo-system-ui:
|
||||||
specifier: ~6.0.7
|
specifier: ~6.0.7
|
||||||
version: 6.0.7(expo@54.0.7)(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))
|
version: 6.0.7(expo@54.0.7)(react-native-web@0.21.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))
|
||||||
expo-web-browser:
|
|
||||||
specifier: ~15.0.7
|
|
||||||
version: 15.0.7(expo@54.0.7)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))
|
|
||||||
react:
|
react:
|
||||||
specifier: 19.1.0
|
specifier: 19.1.0
|
||||||
version: 19.1.0
|
version: 19.1.0
|
||||||
@@ -306,9 +297,6 @@ importers:
|
|||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
'-@0.0.1':
|
|
||||||
resolution: {integrity: sha512-3HfneK3DGAm05fpyj20sT3apkNcvPpCuccOThOPdzz8sY7GgQGe0l93XH9bt+YzibcTIgUAIMoyVJI740RtgyQ==}
|
|
||||||
|
|
||||||
'@0no-co/graphql.web@1.2.0':
|
'@0no-co/graphql.web@1.2.0':
|
||||||
resolution: {integrity: sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==}
|
resolution: {integrity: sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -1072,12 +1060,6 @@ packages:
|
|||||||
conventional-commits-parser:
|
conventional-commits-parser:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@dylankenneally/react-native-ssh-sftp@1.5.20':
|
|
||||||
resolution: {integrity: sha512-i234V5eNaFlIkUSDX8PbqwMjP7l4rPGjphcMocYHTPs1vJJMCGpWR3pvTwog2za7jZuWAIJTRgLGGuJddDmQSg==}
|
|
||||||
engines: {node: '>=18.16.0 <21.0.0', npm: '>=9.5.0 <11.0.0'}
|
|
||||||
peerDependencies:
|
|
||||||
react-native: '*'
|
|
||||||
|
|
||||||
'@egjs/hammerjs@2.0.17':
|
'@egjs/hammerjs@2.0.17':
|
||||||
resolution: {integrity: sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==}
|
resolution: {integrity: sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==}
|
||||||
engines: {node: '>=0.8.0'}
|
engines: {node: '>=0.8.0'}
|
||||||
@@ -1284,18 +1266,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==}
|
resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@eslint/eslintrc@2.1.4':
|
|
||||||
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
|
|
||||||
'@eslint/eslintrc@3.3.1':
|
'@eslint/eslintrc@3.3.1':
|
||||||
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
|
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@eslint/js@8.57.1':
|
|
||||||
resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
|
|
||||||
'@eslint/js@9.35.0':
|
'@eslint/js@9.35.0':
|
||||||
resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==}
|
resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
@@ -1457,19 +1431,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
|
resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
|
||||||
engines: {node: '>=18.18.0'}
|
engines: {node: '>=18.18.0'}
|
||||||
|
|
||||||
'@humanwhocodes/config-array@0.13.0':
|
|
||||||
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
|
|
||||||
engines: {node: '>=10.10.0'}
|
|
||||||
deprecated: Use @eslint/config-array instead
|
|
||||||
|
|
||||||
'@humanwhocodes/module-importer@1.0.1':
|
'@humanwhocodes/module-importer@1.0.1':
|
||||||
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
|
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
|
||||||
engines: {node: '>=12.22'}
|
engines: {node: '>=12.22'}
|
||||||
|
|
||||||
'@humanwhocodes/object-schema@2.0.3':
|
|
||||||
resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
|
|
||||||
deprecated: Use @eslint/object-schema instead
|
|
||||||
|
|
||||||
'@humanwhocodes/retry@0.3.1':
|
'@humanwhocodes/retry@0.3.1':
|
||||||
resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
|
resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
|
||||||
engines: {node: '>=18.18'}
|
engines: {node: '>=18.18'}
|
||||||
@@ -3211,10 +3176,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==}
|
resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==}
|
||||||
engines: {node: '>=10.0.0'}
|
engines: {node: '>=10.0.0'}
|
||||||
|
|
||||||
D@1.0.0:
|
|
||||||
resolution: {integrity: sha512-nQvrCBu7K2pSSEtIM0EEF03FVjcczCXInMt3moLNFbjlWx6bZrX72uT6/1uAXDbnzGUAx9gTyDiQ+vrFi663oA==}
|
|
||||||
deprecated: Package no longer supported. Contact support@npmjs.com for more info.
|
|
||||||
|
|
||||||
abbrev@3.0.1:
|
abbrev@3.0.1:
|
||||||
resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==}
|
resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==}
|
||||||
engines: {node: ^18.17.0 || >=20.5.0}
|
engines: {node: ^18.17.0 || >=20.5.0}
|
||||||
@@ -3261,9 +3222,6 @@ packages:
|
|||||||
ajv@6.12.6:
|
ajv@6.12.6:
|
||||||
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
|
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
|
||||||
|
|
||||||
ajv@8.17.1:
|
|
||||||
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
|
|
||||||
|
|
||||||
anser@1.4.10:
|
anser@1.4.10:
|
||||||
resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==}
|
resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==}
|
||||||
|
|
||||||
@@ -4219,10 +4177,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
|
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
doctrine@3.0.0:
|
|
||||||
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
|
|
||||||
engines: {node: '>=6.0.0'}
|
|
||||||
|
|
||||||
doctypes@1.1.0:
|
doctypes@1.1.0:
|
||||||
resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==}
|
resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==}
|
||||||
|
|
||||||
@@ -4565,10 +4519,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
|
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
|
||||||
engines: {node: '>=8.0.0'}
|
engines: {node: '>=8.0.0'}
|
||||||
|
|
||||||
eslint-scope@7.2.2:
|
|
||||||
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
|
|
||||||
eslint-scope@8.4.0:
|
eslint-scope@8.4.0:
|
||||||
resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
|
resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
@@ -4585,12 +4535,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
|
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
eslint@8.57.1:
|
|
||||||
resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
eslint@9.35.0:
|
eslint@9.35.0:
|
||||||
resolution: {integrity: sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==}
|
resolution: {integrity: sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
@@ -4605,10 +4549,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
|
resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
espree@9.6.1:
|
|
||||||
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
|
|
||||||
esprima@4.0.1:
|
esprima@4.0.1:
|
||||||
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -4685,11 +4625,6 @@ packages:
|
|||||||
react: '*'
|
react: '*'
|
||||||
react-native: '*'
|
react-native: '*'
|
||||||
|
|
||||||
expo-build-properties@1.0.8:
|
|
||||||
resolution: {integrity: sha512-Ram9Jcg2WkbE7bRopWacMnXIhqUP6P13cQoj4rSfXLpJVOyGGvuMiw3rs1vzMbWSHxhvvsX2NvYXXIrZatexuw==}
|
|
||||||
peerDependencies:
|
|
||||||
expo: '*'
|
|
||||||
|
|
||||||
expo-clipboard@8.0.7:
|
expo-clipboard@8.0.7:
|
||||||
resolution: {integrity: sha512-zvlfFV+wB2QQrQnHWlo0EKHAkdi2tycLtE+EXFUWTPZYkgu1XcH+aiKfd4ul7Z0SDF+1IuwoiW9AA9eO35aj3Q==}
|
resolution: {integrity: sha512-zvlfFV+wB2QQrQnHWlo0EKHAkdi2tycLtE+EXFUWTPZYkgu1XcH+aiKfd4ul7Z0SDF+1IuwoiW9AA9eO35aj3Q==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -4863,12 +4798,6 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
expo: '*'
|
expo: '*'
|
||||||
|
|
||||||
expo-web-browser@15.0.7:
|
|
||||||
resolution: {integrity: sha512-eXnfO3FQ2WthTA8uEPNJ7SDRfPaLIU/P2k082HGEYIHAFZMwh2o9Wo+SDVytO3E95TAv1qwhggUjOrczYzxteQ==}
|
|
||||||
peerDependencies:
|
|
||||||
expo: '*'
|
|
||||||
react-native: '*'
|
|
||||||
|
|
||||||
expo@54.0.7:
|
expo@54.0.7:
|
||||||
resolution: {integrity: sha512-DftN6nMdpHYUCw5Xnh7+h7wnusjtly4JzQknvuD7MzIvqoyJL9uffQyMQrmZkXrUbgm+cKBm47vtooIz4qj0Qg==}
|
resolution: {integrity: sha512-DftN6nMdpHYUCw5Xnh7+h7wnusjtly4JzQknvuD7MzIvqoyJL9uffQyMQrmZkXrUbgm+cKBm47vtooIz4qj0Qg==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -4915,9 +4844,6 @@ packages:
|
|||||||
fast-levenshtein@2.0.6:
|
fast-levenshtein@2.0.6:
|
||||||
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
|
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
|
||||||
|
|
||||||
fast-uri@3.1.0:
|
|
||||||
resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
|
|
||||||
|
|
||||||
fast-xml-parser@4.5.3:
|
fast-xml-parser@4.5.3:
|
||||||
resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==}
|
resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -4946,10 +4872,6 @@ packages:
|
|||||||
picomatch:
|
picomatch:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
file-entry-cache@6.0.1:
|
|
||||||
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
|
|
||||||
engines: {node: ^10.12.0 || >=12.0.0}
|
|
||||||
|
|
||||||
file-entry-cache@8.0.0:
|
file-entry-cache@8.0.0:
|
||||||
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
|
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
|
||||||
engines: {node: '>=16.0.0'}
|
engines: {node: '>=16.0.0'}
|
||||||
@@ -4981,10 +4903,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
|
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
flat-cache@3.2.0:
|
|
||||||
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
|
|
||||||
engines: {node: ^10.12.0 || >=12.0.0}
|
|
||||||
|
|
||||||
flat-cache@4.0.1:
|
flat-cache@4.0.1:
|
||||||
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
|
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
|
||||||
engines: {node: '>=16'}
|
engines: {node: '>=16'}
|
||||||
@@ -5888,9 +5806,6 @@ packages:
|
|||||||
json-schema-traverse@0.4.1:
|
json-schema-traverse@0.4.1:
|
||||||
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
|
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
|
||||||
|
|
||||||
json-schema-traverse@1.0.0:
|
|
||||||
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
|
|
||||||
|
|
||||||
json-stable-stringify-without-jsonify@1.0.1:
|
json-stable-stringify-without-jsonify@1.0.1:
|
||||||
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
|
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
|
||||||
|
|
||||||
@@ -7902,9 +7817,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
|
resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
text-table@0.2.0:
|
|
||||||
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
|
|
||||||
|
|
||||||
thenify-all@1.6.0:
|
thenify-all@1.6.0:
|
||||||
resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
|
resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
|
||||||
engines: {node: '>=0.8'}
|
engines: {node: '>=0.8'}
|
||||||
@@ -8681,8 +8593,6 @@ packages:
|
|||||||
|
|
||||||
snapshots:
|
snapshots:
|
||||||
|
|
||||||
'-@0.0.1': {}
|
|
||||||
|
|
||||||
'@0no-co/graphql.web@1.2.0': {}
|
'@0no-co/graphql.web@1.2.0': {}
|
||||||
|
|
||||||
'@ampproject/remapping@2.3.0':
|
'@ampproject/remapping@2.3.0':
|
||||||
@@ -9669,15 +9579,6 @@ snapshots:
|
|||||||
conventional-commits-filter: 5.0.0
|
conventional-commits-filter: 5.0.0
|
||||||
conventional-commits-parser: 6.2.0
|
conventional-commits-parser: 6.2.0
|
||||||
|
|
||||||
'@dylankenneally/react-native-ssh-sftp@1.5.20(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))':
|
|
||||||
dependencies:
|
|
||||||
'-': 0.0.1
|
|
||||||
D: 1.0.0
|
|
||||||
eslint: 8.57.1
|
|
||||||
react-native: 0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
|
|
||||||
'@egjs/hammerjs@2.0.17':
|
'@egjs/hammerjs@2.0.17':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/hammerjs': 2.0.46
|
'@types/hammerjs': 2.0.46
|
||||||
@@ -9820,11 +9721,6 @@ snapshots:
|
|||||||
'@esbuild/win32-x64@0.25.9':
|
'@esbuild/win32-x64@0.25.9':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)':
|
|
||||||
dependencies:
|
|
||||||
eslint: 8.57.1
|
|
||||||
eslint-visitor-keys: 3.4.3
|
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.9.0(eslint@9.35.0(jiti@2.5.1))':
|
'@eslint-community/eslint-utils@4.9.0(eslint@9.35.0(jiti@2.5.1))':
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 9.35.0(jiti@2.5.1)
|
eslint: 9.35.0(jiti@2.5.1)
|
||||||
@@ -9850,20 +9746,6 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@types/json-schema': 7.0.15
|
'@types/json-schema': 7.0.15
|
||||||
|
|
||||||
'@eslint/eslintrc@2.1.4':
|
|
||||||
dependencies:
|
|
||||||
ajv: 6.12.6
|
|
||||||
debug: 4.4.1
|
|
||||||
espree: 9.6.1
|
|
||||||
globals: 13.24.0
|
|
||||||
ignore: 5.3.2
|
|
||||||
import-fresh: 3.3.1
|
|
||||||
js-yaml: 4.1.0
|
|
||||||
minimatch: 3.1.2
|
|
||||||
strip-json-comments: 3.1.1
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
|
|
||||||
'@eslint/eslintrc@3.3.1':
|
'@eslint/eslintrc@3.3.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv: 6.12.6
|
ajv: 6.12.6
|
||||||
@@ -9878,8 +9760,6 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@eslint/js@8.57.1': {}
|
|
||||||
|
|
||||||
'@eslint/js@9.35.0': {}
|
'@eslint/js@9.35.0': {}
|
||||||
|
|
||||||
'@eslint/object-schema@2.1.6': {}
|
'@eslint/object-schema@2.1.6': {}
|
||||||
@@ -10259,18 +10139,8 @@ snapshots:
|
|||||||
'@humanfs/core': 0.19.1
|
'@humanfs/core': 0.19.1
|
||||||
'@humanwhocodes/retry': 0.3.1
|
'@humanwhocodes/retry': 0.3.1
|
||||||
|
|
||||||
'@humanwhocodes/config-array@0.13.0':
|
|
||||||
dependencies:
|
|
||||||
'@humanwhocodes/object-schema': 2.0.3
|
|
||||||
debug: 4.4.1
|
|
||||||
minimatch: 3.1.2
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
|
|
||||||
'@humanwhocodes/module-importer@1.0.1': {}
|
'@humanwhocodes/module-importer@1.0.1': {}
|
||||||
|
|
||||||
'@humanwhocodes/object-schema@2.0.3': {}
|
|
||||||
|
|
||||||
'@humanwhocodes/retry@0.3.1': {}
|
'@humanwhocodes/retry@0.3.1': {}
|
||||||
|
|
||||||
'@humanwhocodes/retry@0.4.3': {}
|
'@humanwhocodes/retry@0.4.3': {}
|
||||||
@@ -12265,8 +12135,6 @@ snapshots:
|
|||||||
|
|
||||||
'@xmldom/xmldom@0.8.11': {}
|
'@xmldom/xmldom@0.8.11': {}
|
||||||
|
|
||||||
D@1.0.0: {}
|
|
||||||
|
|
||||||
abbrev@3.0.1: {}
|
abbrev@3.0.1: {}
|
||||||
|
|
||||||
abort-controller@3.0.0:
|
abort-controller@3.0.0:
|
||||||
@@ -12306,13 +12174,6 @@ snapshots:
|
|||||||
json-schema-traverse: 0.4.1
|
json-schema-traverse: 0.4.1
|
||||||
uri-js: 4.4.1
|
uri-js: 4.4.1
|
||||||
|
|
||||||
ajv@8.17.1:
|
|
||||||
dependencies:
|
|
||||||
fast-deep-equal: 3.1.3
|
|
||||||
fast-uri: 3.1.0
|
|
||||||
json-schema-traverse: 1.0.0
|
|
||||||
require-from-string: 2.0.2
|
|
||||||
|
|
||||||
anser@1.4.10: {}
|
anser@1.4.10: {}
|
||||||
|
|
||||||
ansi-align@3.0.1:
|
ansi-align@3.0.1:
|
||||||
@@ -13458,10 +13319,6 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
esutils: 2.0.3
|
esutils: 2.0.3
|
||||||
|
|
||||||
doctrine@3.0.0:
|
|
||||||
dependencies:
|
|
||||||
esutils: 2.0.3
|
|
||||||
|
|
||||||
doctypes@1.1.0: {}
|
doctypes@1.1.0: {}
|
||||||
|
|
||||||
dot-prop@5.3.0:
|
dot-prop@5.3.0:
|
||||||
@@ -13933,11 +13790,6 @@ snapshots:
|
|||||||
esrecurse: 4.3.0
|
esrecurse: 4.3.0
|
||||||
estraverse: 4.3.0
|
estraverse: 4.3.0
|
||||||
|
|
||||||
eslint-scope@7.2.2:
|
|
||||||
dependencies:
|
|
||||||
esrecurse: 4.3.0
|
|
||||||
estraverse: 5.3.0
|
|
||||||
|
|
||||||
eslint-scope@8.4.0:
|
eslint-scope@8.4.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
esrecurse: 4.3.0
|
esrecurse: 4.3.0
|
||||||
@@ -13949,49 +13801,6 @@ snapshots:
|
|||||||
|
|
||||||
eslint-visitor-keys@4.2.1: {}
|
eslint-visitor-keys@4.2.1: {}
|
||||||
|
|
||||||
eslint@8.57.1:
|
|
||||||
dependencies:
|
|
||||||
'@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1)
|
|
||||||
'@eslint-community/regexpp': 4.12.1
|
|
||||||
'@eslint/eslintrc': 2.1.4
|
|
||||||
'@eslint/js': 8.57.1
|
|
||||||
'@humanwhocodes/config-array': 0.13.0
|
|
||||||
'@humanwhocodes/module-importer': 1.0.1
|
|
||||||
'@nodelib/fs.walk': 1.2.8
|
|
||||||
'@ungap/structured-clone': 1.3.0
|
|
||||||
ajv: 6.12.6
|
|
||||||
chalk: 4.1.2
|
|
||||||
cross-spawn: 7.0.6
|
|
||||||
debug: 4.4.1
|
|
||||||
doctrine: 3.0.0
|
|
||||||
escape-string-regexp: 4.0.0
|
|
||||||
eslint-scope: 7.2.2
|
|
||||||
eslint-visitor-keys: 3.4.3
|
|
||||||
espree: 9.6.1
|
|
||||||
esquery: 1.6.0
|
|
||||||
esutils: 2.0.3
|
|
||||||
fast-deep-equal: 3.1.3
|
|
||||||
file-entry-cache: 6.0.1
|
|
||||||
find-up: 5.0.0
|
|
||||||
glob-parent: 6.0.2
|
|
||||||
globals: 13.24.0
|
|
||||||
graphemer: 1.4.0
|
|
||||||
ignore: 5.3.2
|
|
||||||
imurmurhash: 0.1.4
|
|
||||||
is-glob: 4.0.3
|
|
||||||
is-path-inside: 3.0.3
|
|
||||||
js-yaml: 4.1.0
|
|
||||||
json-stable-stringify-without-jsonify: 1.0.1
|
|
||||||
levn: 0.4.1
|
|
||||||
lodash.merge: 4.6.2
|
|
||||||
minimatch: 3.1.2
|
|
||||||
natural-compare: 1.4.0
|
|
||||||
optionator: 0.9.4
|
|
||||||
strip-ansi: 6.0.1
|
|
||||||
text-table: 0.2.0
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
|
|
||||||
eslint@9.35.0(jiti@2.5.1):
|
eslint@9.35.0(jiti@2.5.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1))
|
'@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1))
|
||||||
@@ -14040,12 +13849,6 @@ snapshots:
|
|||||||
acorn-jsx: 5.3.2(acorn@8.15.0)
|
acorn-jsx: 5.3.2(acorn@8.15.0)
|
||||||
eslint-visitor-keys: 4.2.1
|
eslint-visitor-keys: 4.2.1
|
||||||
|
|
||||||
espree@9.6.1:
|
|
||||||
dependencies:
|
|
||||||
acorn: 8.15.0
|
|
||||||
acorn-jsx: 5.3.2(acorn@8.15.0)
|
|
||||||
eslint-visitor-keys: 3.4.3
|
|
||||||
|
|
||||||
esprima@4.0.1: {}
|
esprima@4.0.1: {}
|
||||||
|
|
||||||
esquery@1.6.0:
|
esquery@1.6.0:
|
||||||
@@ -14134,12 +13937,6 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
expo-build-properties@1.0.8(expo@54.0.7):
|
|
||||||
dependencies:
|
|
||||||
ajv: 8.17.1
|
|
||||||
expo: 54.0.7(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.4)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
|
||||||
semver: 7.7.2
|
|
||||||
|
|
||||||
expo-clipboard@8.0.7(expo@54.0.7)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0):
|
expo-clipboard@8.0.7(expo@54.0.7)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
expo: 54.0.7(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.4)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
expo: 54.0.7(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.4)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
||||||
@@ -14337,11 +14134,6 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
expo: 54.0.7(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.4)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
expo: 54.0.7(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.4)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
||||||
|
|
||||||
expo-web-browser@15.0.7(expo@54.0.7)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0)):
|
|
||||||
dependencies:
|
|
||||||
expo: 54.0.7(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.4)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0)
|
|
||||||
react-native: 0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0)
|
|
||||||
|
|
||||||
expo@54.0.7(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.4)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0):
|
expo@54.0.7(@babel/core@7.28.3)(@expo/metro-runtime@6.1.1)(expo-router@6.0.4)(react-native@0.81.4(@babel/core@7.28.3)(@react-native-community/cli@20.0.2(typescript@5.9.2))(@types/react@19.1.12)(react@19.1.0))(react@19.1.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.3
|
'@babel/runtime': 7.28.3
|
||||||
@@ -14403,8 +14195,6 @@ snapshots:
|
|||||||
|
|
||||||
fast-levenshtein@2.0.6: {}
|
fast-levenshtein@2.0.6: {}
|
||||||
|
|
||||||
fast-uri@3.1.0: {}
|
|
||||||
|
|
||||||
fast-xml-parser@4.5.3:
|
fast-xml-parser@4.5.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
strnum: 1.1.2
|
strnum: 1.1.2
|
||||||
@@ -14439,10 +14229,6 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
picomatch: 4.0.3
|
picomatch: 4.0.3
|
||||||
|
|
||||||
file-entry-cache@6.0.1:
|
|
||||||
dependencies:
|
|
||||||
flat-cache: 3.2.0
|
|
||||||
|
|
||||||
file-entry-cache@8.0.0:
|
file-entry-cache@8.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
flat-cache: 4.0.1
|
flat-cache: 4.0.1
|
||||||
@@ -14479,12 +14265,6 @@ snapshots:
|
|||||||
locate-path: 6.0.0
|
locate-path: 6.0.0
|
||||||
path-exists: 4.0.0
|
path-exists: 4.0.0
|
||||||
|
|
||||||
flat-cache@3.2.0:
|
|
||||||
dependencies:
|
|
||||||
flatted: 3.3.3
|
|
||||||
keyv: 4.5.4
|
|
||||||
rimraf: 3.0.2
|
|
||||||
|
|
||||||
flat-cache@4.0.1:
|
flat-cache@4.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
flatted: 3.3.3
|
flatted: 3.3.3
|
||||||
@@ -15651,8 +15431,6 @@ snapshots:
|
|||||||
|
|
||||||
json-schema-traverse@0.4.1: {}
|
json-schema-traverse@0.4.1: {}
|
||||||
|
|
||||||
json-schema-traverse@1.0.0: {}
|
|
||||||
|
|
||||||
json-stable-stringify-without-jsonify@1.0.1: {}
|
json-stable-stringify-without-jsonify@1.0.1: {}
|
||||||
|
|
||||||
json5@1.0.2:
|
json5@1.0.2:
|
||||||
@@ -18211,8 +17989,6 @@ snapshots:
|
|||||||
glob: 7.2.3
|
glob: 7.2.3
|
||||||
minimatch: 3.1.2
|
minimatch: 3.1.2
|
||||||
|
|
||||||
text-table@0.2.0: {}
|
|
||||||
|
|
||||||
thenify-all@1.6.0:
|
thenify-all@1.6.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
thenify: 3.3.1
|
thenify: 3.3.1
|
||||||
|
|||||||
Reference in New Issue
Block a user