- App.tsx: full navigation (Auth stack + Main tabs with 5 screens) - Auth: LoginScreen, RegisterScreen, ForgotPasswordScreen - HomeScreen: dashboard with IoT metrics, weather widget, alerts, quick actions, sensors - MapScreen: interactive map with layer toggles (6 layers) - MarketplaceScreen: categories (6), products (5), search - ChatScreen: AI chat with quick prompts (4), bot responses - ProfileScreen: user info, stats, menu (9 items), logout - AlertsScreen: alert list with severity, acknowledge - SensorsScreen: sensor list with type filters (6 types), search - ZonesScreen: zone cards with stats - SettingsScreen: language picker (FR/EN/ES/DE), privacy, about - Stores: iotStore (sensors, zones, alerts), notificationStore, uiStore + i18n - Hooks: useSensors, useAlerts, useNotifications, useLocation - Components: Card, Button, LoadingSpinner, ErrorBoundary, Header - Services: iotService, notificationService (with axios API client) - Utils: formatters (temp, AQI, noise, dates), validators (email, password, IBAN) - Theme: colors.ts with full design system (Blue Ocean palette) - Ditto: fixed MongoDB connection, new JWT secrets, official gateway image
30 lines
2.0 KiB
TypeScript
30 lines
2.0 KiB
TypeScript
import type { SpawnOptions } from '@expo/spawn-async';
|
|
import spawnAsync from '@expo/spawn-async';
|
|
import { BasePackageManager } from './BasePackageManager';
|
|
export declare class NpmPackageManager extends BasePackageManager {
|
|
readonly name = "npm";
|
|
readonly bin = "npm";
|
|
readonly lockFile = "package-lock.json";
|
|
workspaceRoot(): NpmPackageManager | null;
|
|
addAsync(namesOrFlags?: string[]): spawnAsync.SpawnPromise<spawnAsync.SpawnResult> | import("../utils/spawn").PendingSpawnPromise<spawnAsync.SpawnResult>;
|
|
addDevAsync(namesOrFlags?: string[]): spawnAsync.SpawnPromise<spawnAsync.SpawnResult> | import("../utils/spawn").PendingSpawnPromise<spawnAsync.SpawnResult>;
|
|
addGlobalAsync(namesOrFlags?: string[]): spawnAsync.SpawnPromise<spawnAsync.SpawnResult> | import("../utils/spawn").PendingSpawnPromise<spawnAsync.SpawnResult>;
|
|
removeAsync(namesOrFlags: string[]): spawnAsync.SpawnPromise<spawnAsync.SpawnResult>;
|
|
removeDevAsync(namesOrFlags: string[]): spawnAsync.SpawnPromise<spawnAsync.SpawnResult>;
|
|
removeGlobalAsync(namesOrFlags: string[]): spawnAsync.SpawnPromise<spawnAsync.SpawnResult>;
|
|
runBinAsync(command: string[], options?: SpawnOptions): spawnAsync.SpawnPromise<spawnAsync.SpawnResult>;
|
|
/**
|
|
* Parse all package specifications from the names or flag list.
|
|
* The result from this method can be used for `.updatePackageFileAsync`.
|
|
*/
|
|
private parsePackageSpecs;
|
|
/** Sort dependencies by keys (case-insensitive, stable). Sorting algorithm is taken from https://github.com/npm/package-json/blob/f5db81bdfbba5e9d3bfc0732f8bfe511825a20aa/lib/update-dependencies.js#L9 */
|
|
private orderDependencies;
|
|
/**
|
|
* Older npm versions have issues with mismatched nested dependencies when adding exact versions.
|
|
* This propagates as issues like mismatched `@expo/config-pugins` versions.
|
|
* As a workaround, we update the `package.json` directly and run `npm install`.
|
|
*/
|
|
private updatePackageFileAsync;
|
|
}
|